JavaScript vs Kotlin vs PHP

Need advice about which tool to choose?Ask the StackShare community!

JavaScript

207K
161.9K
+ 1
7.7K
Kotlin

8.2K
6.3K
+ 1
508
PHP

108.5K
53.3K
+ 1
4.5K
Advice on JavaScript, Kotlin, and PHP
Needs advice
on
PHP
JavaScript
and
Java

Hi there. I'm looking to build an employee time tracker web app. This should also be optimized for mobile. I'm trying to figure out what the best stack is for this. I have knowledge of Java, JavaScript, some C#. I don't mind learning a new language for this purpose. Any help or advice would be really awesome! Thanks.

See more
Replies (6)
Stephen Gheysens
Senior Solutions Engineer at Twilio · | 14 upvotes · 263.7K views
Recommends
JavaScript

Hi Otensia! I'd definitely recommend using the skills you've already got and building with JavaScript is a smart way to go these days. Most platform services have JavaScript/Node SDKs or NPM packages, many serverless platforms support Node in case you need to write any backend logic, and JavaScript is incredibly popular - meaning it will be easy to hire for, should you ever need to.

My advice would be "don't reinvent the wheel". If you already have a skill set that will work well to solve the problem at hand, and you don't need it for any other projects, don't spend the time jumping into a new language. If you're looking for an excuse to learn something new, it would be better to invest that time in learning a new platform/tool that compliments your knowledge of JavaScript. For this project, I might recommend using Netlify, Vercel, or Google Firebase to quickly and easily deploy your web app. If you need to add user authentication, there are great examples out there for Firebase Authentication, Auth0, or even Magic (a newcomer on the Auth scene, but very user friendly). All of these services work very well with a JavaScript-based application.

See more
Recommends
JavaScript

As you have knowledge of Javascript, I would go towards Vue/React in Frontend and Node (with suitable framework) with backend. From my point of view Java would be too bloated for suggested kind of an app. I myself use PHP as a backend a lot and React as frontend but moving thoughts towards full stack javascript world.

See more
Recommends
PHP
JavaScript

php is the best for beginners, and one of the best for web development at all, all the host servers can handle it, a basic knowledge in java is not enough for build a web site, but a basic knowledge in php is enough. learn php basics and oop and mvc design pattern or any framework like Laravel (optional), and javascript for frontend (a framework like React or Angular is optional but good) and you will build any web site you want.

See more
pramod shirsath
Founder at Supra Software Solutions · | 4 upvotes · 53.3K views

We migrated from PHP to Angular/PHP to Angular/Node to React/Node/AWS Lambda. React/Node(Typescript)/Lambda seems to be good so far as we have developed few applications (large and small) using this stack so far. React/Node/Lambda is also good for mobile. If you are planning to use AWS, you can use the S3 bucket to store the frontend and Lambda or EC2 for backend APIs.

See more
pramod shirsath
Founder at Supra Software Solutions · | 2 upvotes · 53.4K views
Recommends

We migrated from PHP to Angular/PHP to Angular/Node to React/Node/AWS Lambda. React/Node(Typescript)/Lambda seems to be good so far as we have developed few applications (large and small) using this stack so far. React/Node/Lambda is also good for mobile. If you are planning to use AWS, you can use the S3 bucket to store the frontend and Lambda or EC2 for backend APIs.

See more
Brandon Miller
Recommends

For just a time tracker app? I'd recommend going with a cloud-based approach. A couple serverless functions in whatever language you choose, and the front end can be a static website hosted inside a storage service (blob for Azure, bucket for AWS, etc). This will ultimately probably save you a little time, and them a little money on hosting.

See more
Piusha Kalyana
Needs advice
on
Python
PHP
and
Go

Hi

I want to build a tool to check asset availability (video, images, etc.) from third-party vendors. These vendors have APIs. However, this process should run daily basis and update the database with the status. This is a kind of separate process. I need to know what will be the good approach and technology for this?

See more
Replies (5)
Hannes Holst
at 365 Consulting Services Ltd. · | 7 upvotes · 96.6K views
Recommends
Python

hi - I think this depends on how you want to provide the information to the user. If you want to build a Wordpress-plugin: PHP If you want to build your own website: Python+Django / PHP / JavaScript+Node.js As Desktop application?

See more
anas mattar
Technical Lead at DPO International · | 3 upvotes · 83.5K views
Recommends
PHP

for what technologies you should use, this is depend on what technology do you prefer? your should think best structuing for your code because each API vendor has different to a nother one so it's better no merege code vendores together. your code must be using SOLID principle pattern and some design pattern such as Factory Pattern

See more
Recommends
Go

The major advantage of Go is that you can run queries in parallel. Fire off a Go thread for each vendor and each thread can check the availability of assets from a specific vendor and update the database. Go supports hundreds of threads with ease.

See more
Oluwafemi Lawrence
Recommends
Go

Hi, I would recommend Go because of strongly-typed nature which makes a developer more productive as it is less error prone compared to the other dynamic-typed language. Go also has cron-job library(powered by goroutines) that can help with your automated tasks.

See more
anas mattar
Technical Lead at DPO International · | 1 upvotes · 80K views
Recommends
PHP
Go
C#

your decision depend on what language do you know. if you know php you can use laravel framework

See more
Needs advice
on
Rust
Kotlin
and
Java

I was thinking about adding a new technology to my current stack (Ruby and JavaScript). But, I want a compiled language, mainly for speed and scalability reasons compared to interpreted languages. I have tried each one (Rust, Java, and Kotlin). I loved them, and I don't know which one can offer me more opportunities for the future (I'm in my first year of software engineering at university).

Which language should I choose?

See more
Replies (8)
Recommends
Kotlin
Java

I will highly recommend Kotlin. I have worked with all three intensely and so far the development speed and simplicity is the best with Kotlin. Kotlin supports coroutines out of the box. Now, it isn't something that can't be implemented in other languages but Kotlin makes it super easy to work with them. Kotlin has a bit of learning curve, so, by the time you can actually use it idiomatically chances are that you will get proficient in Java too. But once you get it, you get it, then there is no other language ;) Kotlin is backed by Google and Jetbrains team so you can expect latest programming features and good community support.

See more
malekmfs
at Meam Software Engineering Group · | 4 upvotes · 63.2K views
Recommends
Rust
Ruby
Kotlin

It depends on which level and use cases you prefer to work at. Close to the machine? Rust is great but if you need to find more job opportunities, then take C/C++. Java has many job positions but I suggest Kotlin over it. Think about it as a better Java, but fewer job positions. Do you want to do your own projects? So a productive language like Ruby is way better. Like to program front-end apps? Take JS. Find your passion.

See more
ALESSIO SALTARIN
Master IT Architect at IBM · | 4 upvotes · 71.3K views
Recommends
Go

As you certainly know, there are languages that compile in meta-code for Virtual Machines (Java, C#, Kotlin) and languages that compile in Machine Language (Go, Rust). Apart specific domains (blockchain, IoT embedded software, AI, cloud) almost no-one uses languages that compile in machine language, for a series of reason, most of all security and portability. So, if you are going to learn for business go with Kotlin - Java is a bit ancien regime. If you seriously need to learn a language that compiles in ML - for example you will code for IoT - go with Go - or Rust - but keep in mind that Rust is much less used than Go. PS: Kotlin also compiles in ML, but I would choose a language designed for that, instead of one that compiles "also" in ML. PPS: Some Virtual Machines - ie: GraalVM - allow you to compile Java in ML. The world of IT is beautiful.

See more
Recommends
Rust

If you want a compiled language then go for Rust. It takes a certain mindset to get your head around its memory management system and the way it handles "borrowed" memory. However, it will generate blindingly fast code that you can cross-compile for other platforms. As a systems programming language I highly recommend it. Take time and learn it.

Java is only compiled to bytecode, not to machine code. So it executes in the Java Virtual Machine. DOn't think that its not fast, because the latest incarnation are very fast indeed. For most practical purposes, users of your code won't notice any difference. There are a heck of a lot of features in Java that you either have to import via crates in Rust, or write yoursef. So productivity-wise, Java may well beat Rust.

Kotlin is a Java-lookalike. It's a nice, and succinct version of Java and is totally interoperable. But its a bit niche, and for me it fails because my dev environment of choice (Spring Tool Suite) doesn't really play well with Kotlin. To use it you would be well advised to use iDeaj. I have used kotlin, and I like it, but not enough to ditch all my Java code.

Other contenders, depending on your platform of choice are Golang, C, C++, and C# (available as Mono on Linux systems).

I use Rust and Java and if you need a compiled language I recommend Rust.

See more
Mayur Borse
Software Engineer at hyphenOs · | 4 upvotes · 71.6K views
Recommends
Rust

I'd say Rust's knowledge will be more valuable in comparison. You can work in Blockchain development, compile to WASM (WebAssembly). There is a new JavaScript/TypeScript runtime named Deno (by the creator of Node.js) that has its backend in Rust.

See more
Alexander Nozik
Senior researcher at MIPT · | 3 upvotes · 64.6K views
Recommends
Kotlin

All those are nice languages, but Rust is harder to learn properly and has a smaller ecosystem. If you want to work in system programming (like hardware drivers) Rust is probably your choice. Otherwise, Java/Kotlin ecosystem is much larger and gives much more possibilities (maybe excluding low-level system programming).

When talking about Kotlin and Java, both are good. But Kotlin, again, gives much more opportunities. Kotlin-JS gives you browser applications, Kotlin-Native allows to compile to native application (and interop with them). Kotlin-WASM will be available shortly. Rust is better than Kotlin-Native for native development tight now, but not by far and it makes sense only if you are focusing only on native development.

See more
Luiz H. Rapatão
Senior Software Engineer at rapatao.com · | 3 upvotes · 64.5K views
Recommends
Kotlin
Java

I'd recommend you to take a look at Java and Kotlin, the first due to the number of companies that actively use it in your products. Kotlin is gaining adept since it is fully compatibly with the Java ecosystem but usually requires less code to do the same (ignoring other benefits of the language). Another benefits of the Kotlin is that it is in fact multiplatform, where you could use the same syntax to code for mobile, web and backend applications. The drawback of Kotlin, is the number of open jobs that exists currently compared to Java, but I pretty sure that it will change in the near future.

See more
Radu Maerza
Software Engineer at Freelancer · | 3 upvotes · 64.8K views
Recommends
Kotlin

I would go with Kotlin. It is pretty hyped currently.

You can use Kotlin for a lot of application types. To name some:

  • Kotlin Multiplatform with Gradle
  • Ktor (https://ktor.io)
  • Spring Boot
  • Kotlin JS (as you already know Javascript, you might like this one)

The code is also really concise, readable and modern. It also provides many features that you will find in many other programming languages.

See more
Needs advice
on
Kotlin
F#
and
C#

Hi there. I want to expand my coding toolset. So I want to learn a second backend language besides Kotlin. Kotlin is fantastic. I love it in every aspect, and I think I can never return to Java. And also why should I? It is 100% interoperable with java and can co-exist in every project.

So my question here is. Which language do you think will bring me more joy? I think F#; it is more like Kotlin. Then C# (it's more or like 100% java). But, let's say I learn F#. Is it 100% interoperable like Kotlin? can they live side by side? Can I, then, apply to .NET jr jobs after a while, for example, or is C# the holy cow? I would like to learn .Net.

If it is the worst and only C# is acceptable, then which language should I learn? Dart? Go?

See more
Replies (3)
Recommends
Kotlin
C#

Exceptional decision to go with Kotlin. For the other story, go full with C#. "is C# the holy cow? Yes it is.". Specially now when netCore is crossplatform and you can build asp.net core applications on Windows, Linux and macOS via Visual Studio Code which is also multiplatform. Nothing will beat C# in the near future. Also, at the end of 2021 Microsoft will release Net 6.0 which will include MAUI.

"For those new to .NET MAUI (standing for .NET Multi-platform App UI), Microsoft says it's "the evolution of Xamarin.Forms extended from mobile to desktop scenarios with UI controls rebuilt from the ground up for performance and extensibility."

So, C# all the way sire!

See more
Recommends
C#

animefanx1,

First let's get your questions sorted: Which language do you think will bring me more joy?

This you will have to decide for yourself, I am a long time C# developer and have seen it grow into a very compelling platform. The language and I'd compare it more to Kotlin than Java (by a long margin). More on .NET in a bit.

say I learn F#. Is it 100% interoperable like Kotlin?

You can have 100% interop with a caveat, your F# libraries have to implement certain guidance in order to be referenced from C#. Some (dare I say most) of the differences between F# and C# are predicated on language constructs that are not available in C#. For instance F# functions that return Unit.

can they live side by side?

Yes.

Can I, then, apply to .NET jr jobs after a while, for example, or is C# the holy cow?

I don't know if I take your meaning, but let me say this: Learning either C# or F# will likely force you to understand concepts such as garbage collection, primitive types, etc. which apply to all .NET languages, thus a lot of the effort you put into .NET is bound to pay off regardless of your choice.

If it is the worst and only C# is acceptable, then which language should I learn? Dart? Go? You can't go wrong with any of these and I venture to say whether you select C#, F#, Dart or Go as your next adventure, your willingness to learn will take you to try other languages, some which mey not even exist yet!

PS1: .NET is an end to end environment now. With the introduction of Blazor and Razor pages one does not need JavaScript or other browser scripting languages, it even interops with JavaScript. PS2. Microsoft is working on unifying .NET. Soon there will be only one version: .NET 5! Caveat: Some features such as WinForms will still be specific to the windows environment but all of those are likely things you don't need in Mac or Linux

See more
Recommends
Go

I think you can learn go instead C#. C# is cool, but Golang also cool. It can run on any OS without specific software. C# can run on linux too but it's only the .NET Core as I know. But golang is flexible. So try it and decide what do you think about Golang

See more
Needs advice
on
React
JavaScript
and
C#

Hi Everyone,

I have some experience working with JavaScript and React and will now try to learn C# - could you please share some similarities and differences between JS and C# and what rookie mistakes I should watch out for when learning C#?

Also, any tips & good practices are greatly appreciated :)

Thank you

See more
Replies (4)
Pavel Kalugin
Software Engineer at Paralect · | 9 upvotes · 44.6K views

If you want to learn C# to write some backend code you can also check out Node.js which is basically JavaScript running outside the browser. You can create any kind of web servers, APIs, scrapers, automation scripts, etc using all the same JavaScript.

A good entry to Node is Express.js. It is the most common web framework for Node. It's well documented and there are a lot of educational materials for it.

See more
Hameed Moshood
Recommends
C#

C# is .net framework of a programming language specially different from the programming languages you're used to. If you learn C# you will be experienceed in coding with VIsual Basic .net and also creating web development using ASP and this ASP also include JavaScript function.... I urge you to learn it

See more
Kudos Beluga
Recommends
Node.js
F#

I prefer functional programming because it produces less buggy code (thus I recommend F#), and is simply better to learn this paradigm earlier on in your coding career rather than later. It can also do most stuff C# can do, namely code with .NET core. If you're going to learn .NET then you should learn Node.js+Express first though before doing web development with C#/F#

See more
Ross M.
System Architect at MomentFactory · | 2 upvotes · 32.5K views
Recommends
JavaScript
C#

I think you can manage to find something about this topic. it's pretty popular one. ex: https://www.educba.com/c-sharp-vs-js/

Something I don't see discussed enough over the internet is the performance difference. I don't think you should worry about this. 95% of the time you won't notice the difference on your day to day projets. You will know what you need in terms of performance when you get there.

See more
Needs advice
on
PHP
css
and
HTML5

Hello,

I want to generate dynamic CSS for each user with an expiry link.

I've created a cloud-based tool (Example - https://www.tablesgenerator.com/) where people can create tables and use them on their website by pasting the HTML generated by the tool.

Now, there are a few styling options needed, which can be done using CSS. As of now, I'm asking the users to copy the CSS and paste it in the "Custom CSS" section, which is a bit hectic work as they need to change the CSS every time if I make any changes to the styling.

So, I'm just wondering if there's a way to generate dynamic CSS for each user with an expiry link.

Currently, I have around 200 users, and what's the best way to do it?

See more
Replies (2)
Grant Steuart
Recommends
css

Instead of having the user copy and paste the CSS directly, have them copy and paste the HTML that will include an external CSS file generated and hosted by your application. This will allow you to control when the stylesheet is updated as well as control privileges on who can request the file. Additionally, using a CDN service (e.g. Cloudflare) will allow you to cache the static assets being requested reducing overall server load.

When your server (and optionally CDN) no longer are serving the file, consider the link expired. Unique URLs can be generated using a multitude of methods but maybe consider if there is any benefit to the users if it follows the scheme: yourdomain.com/USERNAME/CUSTOM_NAME.css rather than something like: yourdomain.com/style/SOME-UNIQUE-HASH-1234.css

See more
Recommends
PHP
css
HTML5

The best way, as usual, is a "it depends".

Still I would go to something as simple as storing the expire date+the generated css and other metadata in a table. If a user tries to access something that is expired than he's redirected to a specific page. Periodically (like once a day), a janitor process deletes the old data.

See more
Needs advice
on
Python
JavaScript
and
C++

Hi, I'm just starting to learn code, and I stumbled upon this website. I think I should learn JavaScript, Python, and C++ to begin with. I'm a quick learner so I am only worried about what would be more useful. Suppose my goal is to build an online clothing store or something. Then what languages would be best? I need advice. Please help me out. I'm 13 and just beginning and it's hard to understand when people use technical terms so please keep it simple. Thanks a lot.

See more
Replies (8)
Taimoor Mirza
Associate Software Engineer at Intech Process Automation · | 21 upvotes · 85.3K views
Recommends
Python

Go with Python. It's syntax is really simple and less verbose compare to others. You can use Python for basically anything like web dev, task automation, data science, data engineering, cybersecurity etc. At initial level, it's more important to get an understanding of programming fundamentals. Once you get conformable with coding in general, then you can explore other languages.

See more

I would worry less about languages when you're first starting out. If you want to build an online store, then javascript is a great language that is used all over the web! Get comfortable with your first language, learn some computer science concepts and how to build things the right way, and then just work towards a goal and learn as you go!

https://www.w3schools.com/ is a great resource and it's completely free, everything you need to know to build a website is on that page if you have the drive to learn it. Best of luck to you!

Here's a neat roadmap too, in case you find yourself lost on what to learn next https://roadmap.sh/frontend

See more
Recommends
JavaScript

I recommend JavaScript to build your first website, for both FrontEnd and BackEnd , even tho I am a BIG fan of C++ it is not well suited yet to create websites, and Python would be just as good for the BackEnd as JavaScript but having everything written in only one language will make your learning curve way easier, so it is easy to recommend JavaScript.

See more

Python is an easy and beginner-friendly language. As you've mentioned about Online Clothing store, you'll need to deal with the website part and you'll need Javascript to make the site accessible and functional. Javascript will be more easy to learn if you learn Python first, so you can just start with Python.

See more
Recommends
JavaScript

I have worked with all these a ton. I make ecommerce and enterprise apps now. The only one of these you need is JavaScript. You can use JS on the backend as Node.js in AWS Lambda. You will need HTML and CSS skills, as well as a database. I recommend MongoDB. Please forget about C++ until you built your first company. Python fits the same purpose as Node.js but is currently popular in the Data Science community so skip it until you have a LOT of customers.

See more
Recommends
Python
Flask

Hello Rachel, as a fellow programmer, I am glad that you are planning on expanding your coding knowledge and skills.

I recommend learning python first as it has a very simple syntax (syntax is how your code looks and how simple it is to type) and is also very user-friendly. Once you get to know how to code in python, you can use this thing called Flask.

Flask is what you call a "web application framework" or a WAF, it basically is a tool used to develop websites and other similar things. You don't have to worry much about it's difficulty because it is based on python. You will still have to learn how to use Flask though as it could be a bit complicating in first glance.

If you are looking for simpler ways for making website without having to learn a lot of programming, you can learn HTML and CSS. These 2 will help you in making a basic and functional website. The catch is, from a career perspective, HTML won't get you far, as literally every programmer knows it. So it is best to use programming languages.

I hope this gave you a clear understanding of the ways in which you can build websites. Wishing you the best of luck!

See more
Recommends
WordPress

Hi, When saying that "Suppose my goal is to build an online clothing store or something", I would go for a ready to use platform like Wordpress. it will give you a fast jump into the online world. By using WP you'll have to catch on with PHP\JQuery Goodluck.. Ping me when store is ready, I might buy something....

See more
John Akhilomen

Since you're new, I'd recommend Javascript and Python. With Javascript, just learn React and Node. And with Python, learn Django. With JavaScript, Node, React, Python, and Django; you can accomplish quite a lot for both frontend and backend.

See more
Needs advice
on
Swift
React
and
JavaScript

Hey guys, I learned the basics (OOP, data structures & some algorithms) with Python, but now I want to learn iOS development. I am considering to learn Swift, but I am afraid how the native mobile development will die out because of the cross-platform frameworks and reviews. My idea is to learn web development first and then learn React Native, and after all of that, finally Swift. What do you think about this roadmap? Should I just learn Swift first due to the pros of the native apps?

See more
Replies (6)
Recommends
Swift

Native apps are not going to die. Especially not Swift because now Swift can be used to develop cross platform macOS and iOS apps due to the new macs having M1 chips.

See more
Noel Broda
Founder, CEO, CTO at NoFilter · | 3 upvotes · 10.6K views

"Should I just learn Swift first due to the pros of the native apps?". React Native builds Native Apps. Technologies like ionic does NOT build native apps, but React Native does it.

Learning Swift seems to be a really bad idea from my point of view. Learning JavaScript is all what you need. Why? Because then Frontend, Backend, and Mobile Dev, is simple, because it's all JavaScript.

See more
Recommends
Swift

If asking about employment opportunities, native will never die out. There will always be opportunity for work in native mobile applications. There are also many advantages of using native over cross platform such as always having access to the latest APIs and developer libraries that may not be available to cross-platform without some native development involved or can wait until someone develops a bridge for you.

If you are asking about what you should develop with first? It really depends. React-Native is great for building proto-types or basic MVP application that doesn't require any of the latest and greatest features Apple has to offer at the moment. But if you're asking what to learn? I would say native will always give you a larger advantage as it will give you a good foundation in mobile development and provide you access to the latest native libraries. It is also a useful skill that can give you an edge in cross-platform mobile like react-native because you will most definitely encounter a situation where you will have to go down to the to native side to extend functionality or utilize APIs that are not yet out of the box.

See more
Recommends
Swift

I would suggest to bet more on Swift! I have developed act in React and Javascript in the past and played around with Swift a little... the performances of native code vs Javascript are way too slow compared to swift native app!

Now even more than ever M1 chip will give a boost, but if it gives a boost to JS it will give a boost also to native apps. I would seriously consider Swift more than Javascript, React or even Electron!

See more

The decision comes down to your goals and needs.

If you want to be able to create any kind of iOS app, simple or complex, learn Swift. It's indispensable if you're building specialised apps like video editing, augmented reality, machine learning or anything that uses iOS-specific APIs such as App Clips.

But if you just want to create apps that make HTTP requests and display static content such as text or basic video and music, React Native would do just fine, and you can publish the same code to Android. This is a no-brainer choice if you're on a low budget.

And if you know both, you can use both in the same app. You can add React Native screens or components inside a Swift app.

See more
Carlos Iglesias
Recommends

Mobile Native Development Apps will never die. Cross Plataform like React Native only exists to save time and costs for startups mainly, which is extraordinary, and indispensable often of course. But when the App get popular enough, it will probably will move to Native Development. Several improvements.

See more
Needs advice
on
Python
JavaScript
and
Java

I am new to programming and am a university student. While Computer Science is not my area of study, I am majoring in a subject that branches off computer science and health informatics, which deals with databases. I am currently in a programming fundamentals course at my university. My instructor mentioned that he develops in Java, but I have heard many good things about Python and JavaScript before taking his course; while we are only doing the fundamentals, I believe he is teaching us some in Java.

Since I am new to this, I'm not sure what I like more. I have also been self-teaching before this course but have not gotten deep into a particular language's fundamentals. I want to decide on a language and stick to it before I move to a new one after the first language is learned, but it is difficult deciding which language to start with. I want to develop medical software and medical mobile apps.

See more
Replies (11)
Dimelo Waterson
Recommends
Java

There's a reason many universities start with Java- it has strict rules and lays out code in a straightforward (if excessively-boiler-plate-heavy) way. For a beginner, Java is an excellent way to learn the fundamentals of programming before taking off the training wheels and continuing in more flexible, less-syntactically-rigorous direction like Python or JavaScript.

Sticking to a language before moving on is a common goal. However, in reality you are going to transition as you find languages that better suit you or your organization's requirements. Start with Java, not because it is optimal for your end goals, but because it will teach you what you like and dislike about programming and because your instructor is more familiar with it. That will give you a valuable perspective and allow you to make a more informed decision later.

There are many ways to solve problems in different languages, but the "best" language pragmatically is the one that you feel most comfortable using. In that respect, programming is like woodworking- you want to let the tool do the work. If there is another language that is "better" objectively but more difficult or confusing to you, you will counteract the anticipated benefits by having to struggle to write code.

See more
Recommends
Java

The only way to solve this problem while avoiding opinions and tastes is to objectively look at what you are trying to build.

Thus the most efficient part of your question is your last sentence: you want to build medical software and medical mobile apps.

In that case, the answer is definitely Java, as is for all "real" software projects.

Python is good for data science, in other words for statistics. Its other competitive advantage is that it is easy to learn for beginners, but that would be a bad reason to use it for a "real" software project.

JavaScript is a mess you don't want to get into. The major reason why it's popular is that many people learn it first, because its very basic features are easy to learn, although they don't get you far, and because it used to have exclusivity on the web. But in reality it will make your life a lot harder after a few weeks, without any benefit. I know I'll get criticisms for that, but I stand fully by this position.

See more
Taimoor Mirza
Associate Software Engineer at Intech Process Automation · | 4 upvotes · 63.1K views
Recommends
Python
Java

Since you're already taking a CS course which involves Java, I would recommend you to keep learning it. Java's statically typed & OO nature forces you to learn a lot of important yet common programming fundamentles. C++, C# and Java type languages also force you write code more carefully (you have to think about the data types on your own and even allocate/de-allocate memories [C++ pointers]). That's why colleges prefer it as go to language for teaching CS concepts.

On the other hand, JS, Python and other such languages are dynamic in nature and hence, easy to learn. But you can't learn certain concepts (polymorphism, abstract classes, diamond problem etc) using these languages. So it makes sense to stick with Java in your case.

See more
Recommends
Python

try with python because easy ... its good for u when u are learning basic's and they have many library that help's u with mobile app and desktop application but it is not the best ... when u are learn programming will with python then start with js basic's and then (react native) or flutter and also u can use java for mobile development bur i recommend first choices ..and for Desktop application java is have an amazing library (java fx ) for this type of application's and C# is one of most powerful language's for software development . good luck

See more
Recommends
Python
Java

While I've seen many people recommend Java (and I agree with them), I think you can learn both. But it depends on how much time you got. I recommend you first learn Java. Then python will be easy to learn, and focus mainly on modules for graphs. The reason why I recommend to learn both is because python is much better and easier to code about statistical analysis. But again do this only if you have time to just learn them.

If your project doesn't have anything to do with statistics and data analysis (I'm pretty sure you do though), learn only java. Also if you are wondering why I never mentioned JavaScript (JS), it's because i really don't recommend it. JS is much harder to learn and requires a lot of lines of code to do simple things.

See more
Recommends
Java

Since your instructor is using Java, i'd start with Java. If you want to get into mobile development, I'd check out flutter / dart. Good luck!

See more

My advice to anyone learning to program is to not obsess on the language.. You SHOULD learn all languages.. Same as learning human spoken languages - the more you learn, the more ways your mind can interpret a new problem set. Learning them at the same time isn't a big deal (just like growing up in a bilingual home). Your language and your software stack are guaranteed to change 3 times in your career. Don't assume you're going to choose the "right one". And you wont waste any time learning one you never wind up using.

As a person who works on linux and OSX desktops, I have a personal bias against working for companies and software stacks that require C# or Visual Studio. But this is not due to their technical merits, but instead the OS as a platform condusive to efficient CLI toolchains and container management. But aside from that, I can use vi/IntelliJ-suite to write most languages, so language isn't a real concern. If you're windows bound, pretty much everything is available to you (through VMs and docker).

Ideally you do at least SOME full stack development learning. This means you'll need javascript, and thus nodejs would be a good stack to learn. If you ultimately like gaming or 3D, you might need C# and certainly python.

Any AI (which is a hot employment topic for the forseeable future) would like python skillz.

I personally love Java (and Android's Kotlin varient) for it's very very well designed multi-threaded libraries. go and rust are newer and thus do a slightly better job at this, but due to the open-source nature of java and editors that auto-reveal function call source code, it's very easy to learn how vendors implemented MT code and various other algorithms. Python should be equally "open" to 3rd party library review (and thus again how they solve complex problems), though a lot of times, I see python resorting to compiled C-libraries (and thus the cost to crack open the code and or trace through the code becomes too burdensome to bother).

See more
Srikanth Gopalakrishnan
WIreless Security Intern at Aruba Networks · | 2 upvotes · 65.7K views
Recommends
Python
Java

Although java seems to be a good fit for you. It is a cumbersome language to get started out. It will be far easier for you to learn Python and stick with it long term. This is due to the fact you will be easily able to google things for python and you will spend less time learning the language, and more time using it to do what you want.

Making mobile apps is easier with Java due to the fact that google does not directly support app building with python. If this is your biggest priority stick with Java.

Javascript: This language is the best language to learn if you are making a website. However, for easy of use you can do all the database access stuff with python. And send back the data to your website. Javascript is also another cumbersome language in my opinion.

Each language has its use. If I were In your situation, I would choose the language that's easy to start with.

See more
Anthony Simon
Lead Engineer at Stylight · | 2 upvotes · 66K views

Ever posted an image on Instagram, watched a video on Youtube, or uploaded a file to Dropbox? You ran Python code each time you did any of those.

When starting out, you really can't go wrong with any language. What matters is to learn, try, repeat. You want to be able to build complete small project, not hello world in every language possible. By building small, but complete projects, you're learning to solve problems, not programming languages.

However, if I had to pick, I'd go with Python first, and add Javascript if you're building a frontend. The reason being, with Python you can do almost anything Java can with 20% of the effort. And that is a huge motivator.

See more

There is always trade off between them. If you want to make mobile app JavaScript is better. I suggest start the one you feel more close and learn all of them :) You are quite young you have enough time for them.

See more
Recommends
Java

It would be great if you first go with Java. It could give you complete understanding of programming concepts. Such as data types. Later you can move to Python , which is great for data processing and Machin learning stuff.

See more
Needs advice
on
JavaScript
and
Java EE

Hi, I'm looking to learn Java EE and JavaScript.... but confused about exactly the difference between J2EE and JavaScript.....are both interconnected or different??? And if I want to learn both, should I learn JavaScript first and then touch J2EE or learn J2EE first and then JavaScript??.... please suggest

See more
Replies (2)
Joshua H

They have nothing in common except the name Java. J2EE is the enterprise edition of Java and JavaScript is a web-based programming language without typing etc. There are a lot of differences between them and they serve very different purposes. If you want to get into web development learn JS, if you want to get into e.g. android development go for Java.

See more
Recommends
Java EE

Java EE is an Enterprise environment based on the Java language. Javascript is a language originally developed for use in web browsers. Javascript and Java are not the same language. Not even close. They share no history. All they have in common is the first four letters of there name. You can use Javascript as part of the web ui for a Java EE application, but in that case the Javascript files are just payload to the Java EE application, on a par with a plain HTML file. They get sent to the user's browser, which is where the Javascript would execute.

If you really only want to learn the one language and don't need the Enterprise features of Java EE then consider Node.js, which uses Javascript on both the server and the client. I've not used that myself, however.

See more
Decisions about JavaScript, Kotlin, and PHP
Leonardo Henrique da Paixão

Simple Customer Registration Crud, with the functions of Register, Delete, Edit and List new and old customers registered in the Database. PostgreSQL was used as DBMS, due to its easy use and practicality.

Crud de Cadastro a Clientes simples, com as funções de Registrar, Deletar, Editar e Listar novos e antigos clientes cadastrado no Banco de Dados. Foi utilizado como SGBD o PostgreSQL, pelo seu facil uso e praticidade.

See more
Kirill Mikhailov

Go is a way faster than both Python and PHP, which is pretty understandable, but we were amazed at how good we adapted to use it. Go was a blessing for a team , since strict typing is making it very easy to develop and control everything inside team, so the quality was really good. We made huge leap forward in dev speed because of it.

See more
  • Client-Side: \ The form of our product is a web app because we would also provide a dashboard for displaying data and for some further purpose including data filtering and comparison. Hence, we would definitely use HTML5 for structuring the web, CSS3 for styling the web, and JavaScript for building the front-end logic. As for frameworks, we would use React because it is component-based that can keep our front-end code clean and organized. The virtual DOM of React also provides better efficiency in time when rendering the page. Furthermore, React has a greater number of users than Vue and Angular, thus have active communities for problem-spotting and problem-solving. We would also incorporate Bootstrap into our web app to provide an aesthetic user interface and thus to improve the user experience. The fact that Boostrap supports responsive site would also ease our workload if future adaptation for mobiles is needed.
See more
Timm Stelzer
Software Engineer at Flexperto GmbH · | 18 upvotes · 218.3K views

We have a lot of experience in JavaScript, writing our services in NodeJS allows developers to transition to the back end without any friction, without having to learn a new language. There is also the option to write services in TypeScript, which adds an expressive type layer. The semi-shared ecosystem between front and back end is nice as well, though specifically NodeJS libraries sometimes suffer in quality, compared to other major languages.

As for why we didn't pick the other languages, most of it comes down to "personal preference" and historically grown code bases, but let's do some post-hoc deduction:

Go is a practical choice, reasonably easy to learn, but until we find performance issues with our NodeJS stack, there is simply no reason to switch. The benefits of using NodeJS so far outweigh those of picking Go. This might change in the future.

PHP is a language we're still using in big parts of our system, and are still sometimes writing new code in. Modern PHP has fixed some of its issues, and probably has the fastest development cycle time, but it suffers around modelling complex asynchronous tasks, and (on a personal note) lack of support for writing in a functional style.

We don't use Python, Elixir or Ruby, mostly because of personal preference and for historic reasons.

Rust, though I personally love and use it in my projects, would require us to specifically hire for that, as the learning curve is quite steep. Its web ecosystem is OK by now (see https://www.arewewebyet.org/), but in my opinion, it is still no where near that of the other web languages. In other words, we are not willing to pay the price for playing this innovation card.

Haskell, as with Rust, I personally adore, but is simply too esoteric for us. There are problem domains where it shines, ours is not one of them.

See more
Alexander Nozik
Senior researcher at MIPT · | 3 upvotes · 61.1K views
Migrated
from
Julia
to
Kotlin

After writing a project in Julia we decided to stick with Kotlin. Julia is a nice language and has superb REPL support, but poor tooling and the lack of reproducibility of the program runs makes it too expensive to work with. Kotlin on the other hand now has nice Jupyter support, which mostly covers REPL requirements.

See more

A major part of our project includes visualizing the data through graphs and charts. We chose to use d3.js since it provides a wide selection of well-designed graphics and animations. As a library, it is also easy to use and be included in our UI. JavaScript which our team has experience with was also selected to integrate graphics from d3.js into the UI, as well as to integrate the UI with the backend system. Along with JavaScript, HTML5 and CSS 3 are also selected mostly for styling and formatting the webpage. These three languages are widely used which means that more support will be available, making the implementation process easier.

See more
Labib Chowdhury
Student at University of Toronto · | 5 upvotes · 51K views

The key to our product relies on explainability and user experience when using our product. With this is mind, it is important to build a clean, readable web interface that a user will be able to navigate easily and quickly debug their security issues. The stack chosen for the interface of our product includes: JavaScript + React, CSS, HTML, Material UI and D3.js.

React provides us with simplicity to allow us to deliver the MVP as soon as possible. React also has multiple open source libraries to ease our development. Being able to reuse React components will help in developing the product fast as well as making the user interface modular. Since we're using React, we will also be using JavaScript, HTML, and CSS to create the frontend.

To design the UI, using a minimal approach would be the best solution. The Material UI library provides us with minimal and aesthetically pleasing React Components which would make our frontend look pleasing to the user.

Finally, our UI will consist of displaying information from our Machine Learning model in a dashboard type view. To display data in tasteful manner, we have chosen to use the D3.js library. This library is the most popular data visualization library for React with over 80k stars on Github. D3 also provides seamless compatibility with React and has a variety of features which would make the data we produce visually pleasing.

See more

Backend:

Python is a great industry standard language that can easily handle both machine learning and web development tasks. Our dev team is very familiar with the language and has used it in various web and Machine learning projects. Python has many versatile ML specific libraries that include TensorFlow, Pytorch, Pycaret, and Keras. It also has packages for data manipulations and visualization like Numpy, Pandas, and Matplotlib. Since our software requires machine learning algorithms, big data processing and a backend server, Python seemed like the way to go.

Our team decided to go distributed databases (NoSQL) over a relational database (SQL) because of the NoSQL dynamic schemas for unstructured data. We are using MongoDB as our NoSQL database due to its simplicity, schema less documentation, deep/fast querying ability, user data management, big data, JSON style documents, and great scaling out. We also chose MongoDB due to its horizontal scaling as a NoSQL database.

Since we are using python as our backend programming language, we decided to use Flask as our web framework. Flask is a micro and lightweight web framework that provides the required functionality to efficiently develop our web server. Flask has a great community with many online resources and provides more flexibility in terms of customization when compared to other frameworks like Django. While Django is great for large scale applications, it does not work well with NoSQL databases.

Frontend:

For our front end framework, we decided to go with React due to its component based structures, flexibility, scalability, and high performance. React has a strong community and is trusted by top companies such as Facebook, Netflix, and Paypal. We can also easily transition our react app to a react native or electron app. We will also be using material-ui framework alongside react for that crisp google material design!

Node.js will be used for development purposes for the front end only. Once we deploy for production, the react frontend will be served from the flask web server and will not require Node.js. This separates the frontend and backend during development, making it easier to work with.

Javascript is one of the most widely used languages for front end development and we will be using it alongside React to develop our user interface. Our dev team is familiar with it through previous web projects. Given how popular it is, its community is very active for any problems that come up and is easy to hire for in the future.

See more
Nathan De Pachtere
Fullstack Developer at Alpsify · | 8 upvotes · 35.2K views
Shared insights
on
JavaScript
HTML5
CSS 3
at

Am I the only one to think that libraries like Bootstrap, Vuetify, Materialize, Foundation are too much sometimes ?

Most of the time you are loading all the library and using 10% of it. And on that 10% you are modifying 90% of it.

I feel like using grid and pure CSS / JS are enough and cleaner.

See more
Lucas Litton
Founder & CEO at Macombey · | 8 upvotes · 115.3K views

JavaScript is at the forefront of our entire development approach. Not only do we use different JavaScript frameworks and management tools, but we also use pure vanilla JavaScript to solve simple problems throughout all of our client's builds. JavaScript is a general purpose programming language that can be blazing fast and fun to work with. There's not one project we are working on that doesn't involve it.

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of JavaScript
Pros of Kotlin
Pros of PHP
  • 1.6K
    Can be used on frontend/backend
  • 1.5K
    It's everywhere
  • 1.1K
    Lots of great frameworks
  • 885
    Fast
  • 734
    Light weight
  • 414
    Flexible
  • 380
    You can't get a device today that doesn't run js
  • 281
    Non-blocking i/o
  • 231
    Ubiquitousness
  • 186
    Expressive
  • 49
    Extended functionality to web pages
  • 42
    Relatively easy language
  • 40
    Executed on the client side
  • 24
    Relatively fast to the end user
  • 20
    Pure Javascript
  • 15
    Functional programming
  • 10
    Async
  • 7
    Setup is easy
  • 6
    Because I love functions
  • 6
    Its everywhere
  • 6
    Like it or not, JS is part of the web standard
  • 6
    JavaScript is the New PHP
  • 6
    Full-stack
  • 5
    Can be used in backend, frontend and DB
  • 5
    Expansive community
  • 5
    Future Language of The Web
  • 4
    For the good parts
  • 4
    Agile, packages simple to use
  • 4
    Supports lambdas and closures
  • 4
    Popularized Class-Less Architecture & Lambdas
  • 4
    Evolution of C
  • 4
    Easy to hire developers
  • 4
    Everyone use it
  • 4
    Love-hate relationship
  • 3
    Photoshop has 3 JS runtimes built in
  • 3
    Can be used on frontend/backend/Mobile/create PRO Ui
  • 3
    Because it is so simple and lightweight
  • 3
    Only Programming language on browser
  • 3
    Nice
  • 3
    Easy to make something
  • 3
    Promise relationship
  • 3
    Scope manipulation
  • 3
    Hard not to use
  • 3
    Client processing
  • 3
    It's fun
  • 3
    Everywhere
  • 3
    No need to use PHP
  • 3
    Function expressions are useful for callbacks
  • 3
    Clojurescript
  • 3
    What to add
  • 3
    1.6K Can be used on frontend/backend
  • 3
    Stockholm Syndrome
  • 3
    It let's me use Babel & Typescript
  • 3
    Client side JS uses the visitors CPU to save Server Res
  • 3
    Its fun and fast
  • 3
    Powerful
  • 3
    Easy
  • 3
    Can be used both as frontend and backend as well
  • 3
    Most Popular Language in the World
  • 3
    Versitile
  • 1
    Acoperișul 0757604335
  • 1
    JavaScript j.s
  • 63
    Interoperable with Java
  • 48
    Functional Programming support
  • 43
    Null Safety
  • 39
    Backed by JetBrains
  • 38
    Official Android support
  • 30
    Concise
  • 29
    Modern Multiplatform Applications
  • 24
    Expressive Syntax
  • 22
    Coroutines
  • 21
    Target to JVM
  • 20
    Open Source
  • 15
    Practical elegance
  • 14
    Type Inference
  • 14
    Statically Typed
  • 13
    Android support
  • 9
    Pragmatic
  • 9
    Better Java
  • 9
    Readable code
  • 8
    Powerful as Scala, simple as Python, plus coroutines <3
  • 6
    Better language for android
  • 6
    Lambda
  • 6
    Expressive DSLs
  • 5
    Target to JavaScript
  • 4
    Less boilerplate code
  • 3
    Used for Android
  • 3
    Fast Programming language
  • 2
    Functional Programming Language
  • 2
    Less code
  • 1
    Latest version of Java
  • 1
    Friendly community
  • 1
    Less boiler plate code
  • 941
    Large community
  • 805
    Open source
  • 758
    Easy deployment
  • 482
    Great frameworks
  • 385
    The best glue on the web
  • 234
    Continual improvements
  • 181
    Good old web
  • 142
    Web foundation
  • 133
    Community packages
  • 124
    Tool support
  • 33
    Used by wordpress
  • 31
    Excellent documentation
  • 26
    Used by Facebook
  • 23
    Because of Symfony
  • 19
    Dynamic Language
  • 15
    Cheap hosting
  • 14
    Very powerful web language
  • 14
    Awesome Language and easy to implement
  • 13
    Fast development
  • 11
    Easy to learn
  • 11
    Composer
  • 10
    Because of Laravel
  • 10
    Flexibility, syntax, extensibility
  • 8
    Easiest deployment
  • 7
    Readable Code
  • 7
    Short development lead times
  • 7
    Worst popularity quality ratio
  • 7
    Fastestest Time to Version 1.0 Deployments
  • 6
    Faster then ever
  • 6
    Fast
  • 6
    Most of the web uses it
  • 5
    Open source and large community
  • 5
    Simple, flexible yet Scalable
  • 4
    Has the best ecommerce(Magento,Prestashop,Opencart,etc)
  • 4
    Large community, easy setup, easy deployment, framework
  • 4
    Open source and great framework
  • 4
    Easy to use and learn
  • 4
    Cheap to own
  • 4
    Easy to learn, a big community, lot of frameworks
  • 4
    Is like one zip of air
  • 4
    I have no choice :(
  • 3
    Great developer experience
  • 2
    Hard not to use
  • 2
    FFI
  • 2
    Interpreted at the run time
  • 2
    Great flexibility. From fast prototyping to large apps
  • 2
    Used by STOMT
  • 2
    Fault tolerance
  • 2
    Safe the planet
  • 2
    Walk away

Sign up to add or upvote prosMake informed product decisions

Cons of JavaScript
Cons of Kotlin
Cons of PHP
  • 21
    A constant moving target, too much churn
  • 20
    Horribly inconsistent
  • 14
    Javascript is the New PHP
  • 8
    No ability to monitor memory utilitization
  • 6
    Shows Zero output in case of ANY error
  • 5
    Can be ugly
  • 4
    Thinks strange results are better than errors
  • 2
    No GitHub
  • 1
    Slow
  • 5
    Java interop makes users write Java in Kotlin
  • 4
    Frequent use of {} keys
  • 2
    Hard to make teams adopt the Kotlin style
  • 2
    Nonullpointer Exception
  • 1
    Friendly community
  • 1
    No boiler plate code
  • 20
    So easy to learn, good practices are hard to find
  • 16
    Inconsistent API
  • 8
    Fragmented community
  • 5
    Not secure
  • 2
    No routing system
  • 1
    Hard to debug
  • 1
    Old

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -

What is JavaScript?

JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.

What is Kotlin?

Kotlin is a statically typed programming language for the JVM, Android and the browser, 100% interoperable with Java

What is PHP?

Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.

Need advice about which tool to choose?Ask the StackShare community!

What companies use JavaScript?
What companies use Kotlin?
What companies use PHP?

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with JavaScript?
What tools integrate with Kotlin?
What tools integrate with PHP?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

May 6 2020 at 6:34AM

Pinterest

+6
3
2149
+12
5
3411
Oct 24 2019 at 7:43PM

AppSignal

+8
5
711
Oct 11 2019 at 2:36PM

LogRocket

+8
5
1554
Oct 3 2019 at 7:13PM

Ably Realtime

+8
4
3236
+4
7
951
What are some alternatives to JavaScript, Kotlin, and PHP?
TypeScript
TypeScript is a language for application-scale JavaScript development. It's a typed superset of JavaScript that compiles to plain JavaScript.
Node.js
Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
Dart
Dart is a cohesive, scalable platform for building apps that run on the web (where you can use Polymer) or on servers (such as with Google Cloud Platform). Use the Dart language, libraries, and tools to write anything from simple scripts to full-featured apps.
CoffeeScript
It adds syntactic sugar inspired by Ruby, Python and Haskell in an effort to enhance JavaScript's brevity and readability. Specific additional features include list comprehension and de-structuring assignment.
Java
Java is a programming language and computing platform first released by Sun Microsystems in 1995. There are lots of applications and websites that will not work unless you have Java installed, and more are created every day. Java is fast, secure, and reliable. From laptops to datacenters, game consoles to scientific supercomputers, cell phones to the Internet, Java is everywhere!
See all alternatives