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

Java

89.2K
65.9K
+ 1
3.6K
Swift

13.2K
9.3K
+ 1
1.2K
Add tool

Java vs Swift: What are the differences?

Developers describe Java as "A concurrent, class-based, object-oriented, language specifically designed to have as few implementation dependencies as possible". 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!. On the other hand, Swift is detailed as "An innovative new programming language for Cocoa and Cocoa Touch". Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project — or for addition into your current app — because Swift code works side-by-side with Objective-C.

Java and Swift can be primarily classified as "Languages" tools.

"Great libraries", "Widely used" and "Excellent tooling" are the key factors why developers consider Java; whereas "Ios", "Elegant" and "Not Objective-C" are the primary reasons why Swift is favored.

Swift is an open source tool with 48.4K GitHub stars and 7.76K GitHub forks. Here's a link to Swift's open source repository on GitHub.

Airbnb, Uber Technologies, and Spotify are some of the popular companies that use Java, whereas Swift is used by Uber Technologies, 9GAG, and Asana. Java has a broader approval, being mentioned in 2399 company stacks & 2723 developers stacks; compared to Swift, which is listed in 993 company stacks and 541 developer stacks.

Advice on Java and Swift
Needs advice
on
Java
and
Common Lisp

Hello everyone! I’m interested in learning AI development, and after doing a little bit of research, I’ve learned that Common Lisp and Java are the top languages for AI. Which one should I learn? What are the differences? Are they hard to learn? If anyone can help with this, it’d be very appreciated. Thank you!

See more
Replies (4)
Václav Hodek
CEO, lead developer at Localazy · | 5 upvotes · 49.7K views
Recommends
Java

Java is far more popular and you can use other JVM-based languages such as Kotlin (I would recommend Kotlin over Java). Also, for Java, there are many more libraries, tools, etc. Also, if you learn Java, you can do almost anything - mobile (Android), web, and desktop apps - without "hacks". There is native support for all of these.

As with any programming language, it's not hard to learn the syntax but it's hard to understand the ecosystem, know libraries, best practices, etc. From that point of view, I would also prefer java - more tools, more libraries, more resources, guides, how-tos, etc.

See more
Recommends
Python

I'd recommend Python due to the fact that many AI libraries and frameworks are specifically developed for the Python ecosystem.

Java is good for general purpose programming: Web, Mobile and Desktop, however doesn't really have many native libraries supporting AI Development.

As for LISP, again it has some support,, however Python seems to be the leading edge in AI development

See more
پیمان سبزی زاده
Recommends
Python

Hi Excuse me if I wrote the text badly because I do not know much English My suggestion is to choose Python for artificial intelligence because it has both comfortable and powerful syntax. Python is currently the best language for artificial intelligence It is better to go and learn Python and then learn one of the artificial intelligence frameworks and enter it.

See more
Recommends
Java

I have not much idea about Lisp, but have been a Java professional since last 20 odd years. And I would say Java along with Python is one of the best languages for AI.

AI works on the concept of algorithms, and Java is algorithm based. Also Java has it's own AI libraries that can be reused. You have Java AI libraries for Expert Systems, Neural Networks, Natural Language Processing.

Also Java being a widely used language, brings with it certain advantages, ease of usage, debugging, has a large user base and support groups. And above all JVM helps you to create on single app, that can run on any platform. And it's features of garbage collection, simplifying work with large scale projects makes it better.

Hope this helps.

See more
Needs advice
on
Python
JavaScript
and
Java

I'm making my university community web service with a team. (6 members myself included)

And we decided to use JavaScript, HTML, CSS (for sure, it's the basic of websites) but couldn't decide for the back end part.

There are tons of languages, tools, etc., but I'm really new to programming, so I'd like to get some help to figure out what tools we need.

So my question is this: are there any good examples of web community services we can mimic the tools or get an insight from them?

See more
Replies (6)
Recommends
Python
Django

Since you're following Python, I would recomend using Django as your main back-end language. If you know Python it would be a great experience. Django is well documented on their official website: https://www.djangoproject.com/ I would also use React for front-end as well. Also this article is worth reading, I think progressive web app is something worth learning these days: https://web.dev/progressive-web-apps/ Hope that helps :)

See more

Since your team is already using JavaScript, there's a great number of examples for backend services written with NodeJS. I'd recommend using Firebase, or any backend as a service (you can use that term to find alternatives), for setting up your backend as it is much easier for newer people to understand and lets you focus on your core application logic, and not provisioning servers, databases, etc.

See more
anas mattar
Technical Lead at DPO International · | 2 upvotes · 56.2K views
Recommends
JavaScript

Since you're team is already using JavaScript, there are alot of examples and open source projects written with NodeJs, so I preffer this language in your backend application and also I am recommended using Mongo DB with It for saving data in it, and also for your frontend application I am recommanded using VueJs.

See more
Hüseyin Özkılıç
Senior Full-Stack Developer at RADSoft · | 1 upvotes · 56.1K views

Make it simple, most of projects doesnt need a AI, ML or big algorithms. If your project just serving end users take it to the web ready compatible. (Javascript, .Net, PHP Laravel)

See more
Jamal Abdinasir
Product manager at abdinasirjamal171@gmail.com · | 1 upvotes · 56.5K views
Recommends

Kindly I don't find any help that solve this mystery I need more help if it will happen

See more
Nash Nziramasanga
Software Developer at Billow Software · | 1 upvotes · 56.2K views

Since you are already using JavaScript on the front end it would be easy to adopt the MERN (MongoDB, Express, React, NodeJS) stack which s all javascript based making it easy to transfer knowledge with the backend and front end

See more
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 · 296.6K 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 · 59.9K 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
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
pramod shirsath
Founder at Supra Software Solutions · | 2 upvotes · 60K 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
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
ALESSIO SALTARIN
Master IT Architect at IBM · | 4 upvotes · 80.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
malekmfs
at Meam Software Engineering Group · | 4 upvotes · 72.1K 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
Mayur Borse
Software Engineer at hyphenOs · | 4 upvotes · 80.5K 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
Radu Maerza
Software Engineer at Freelancer · | 3 upvotes · 73.6K 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
Luiz H. Rapatão
Senior Software Engineer at rapatao.com · | 3 upvotes · 73.4K 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
Alexander Nozik
Senior researcher at MIPT · | 3 upvotes · 73.5K 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
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

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
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
Noel Broda
Founder, CEO, CTO at NoFilter · | 3 upvotes · 13.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
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 (10)
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 · 68.9K 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 · 71.5K 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

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
Kamal Makroum
Needs advice
on
React
Python
and
Java

Hi everyone.

I am willing to build a used car sales platform, which will have a lot of stock/photos and will rely a lot on the back end functions and data generating. Java seems to be a good choice, but what other options can I consider that can also be easily scalable as well as a little faster to write?

Thank you

See more
Replies (2)
Ruslan Rayanov
Recommends

Hi, Kamal! I don't know if your question is still relevant. But I would like to introduce you to our solution, perhaps it will be useful for future projects. We have developed a web application constructor that can be used to create almost any website or application https://falconspace.site/. The entire development stack is reduced to SQL only. The platform is easy to configure and make subsequent changes if necessary.

See more
Recommends

Firstly, you must know that java and python are both amazing languages. But I recommend python mainly because of the variety of modules and packages available to do almost anything. If you are planning on adding graphs, you can use the matplotlib library and to add photos, use the pillow module. And just note that both of these aren't available by default, so you need to install them through pip.

See more
Needs advice
on
Python
Lua
and
Java

I am trying to make Roblox game which requires Lua. I quite don't want to go with Lua just because other tools just might let me do more projects later on. I heard that Python is most similar to Lua, but I am still not sure which tool to use. Java, I think it will help me with many stuff later on for websites, projects, and more!

See more
Replies (1)
Rafey Iqbal Rahman
Recommends
Lua
at

Since you are trying to make a Roblox game, you have no other option than to use Lua, since Roblox only allows coding in Lua. Yes, you've heard right, Python is identical and as easy as Lua, although Lua is easier than Python. Beginning from Lua and then escalating to Python is recommended. Java is only helpful when you are creating a heavy, big-budget, enterprise-level product, otherwise, Python would suffice.

See more
Needs advice
on
Python
PHP
and
Java

Hi everyone, I have just started to study web development, so I'm very new in this field. I would like to ask you which tools are most updated and good to use for getting a job in medium-big company. Front-end is basically not changing by time so much (as I understood by researching some info), so my question is about back-end tools. Which backend tools are most updated and requested by medium-big companies (I am searching for immediate job possibly)?

Thank you in advance Davit

See more
Replies (4)
Pierrick Martos
Engineering Manager at Akeneo · | 20 upvotes · 99.4K views
Recommends
Python

Go with Python definetly. It's used everywhere by web developers for backend developments : API, website backend, workers... but also by data scientists (lot lot of resources, models and libraries in Python it's language #1). For the web parts, best web framework are in Python : https://stackshare.io/microframeworks (Flask #2 and Django #3). Java is good but trend is not great in terms of popularity amongs developers and tech leaders.

See more
Vijayakumar Rajagopal
Recommends
Java

As per my experience java is most wanted for web development as of now. micro service is evolving . with frameworks like spring boot supports rapid development. Spring boot + Docker + kubernetes great combination.

See more
sharik zama
Software engineering Intern at EPAM Systems · | 5 upvotes · 98.7K views
Recommends
JavaScript

I would recommend learning HTML, CSS, and JavaScript (most important). JavaScript forms the backbone of web development. And, there are many popular and widely used frameworks like Angular and React that heavily rely on the knowledge of JavaScript. The number of job opportunities are much more when it comes to javascript.

See more
Chathuranga Bandara
Recommends
Python

I would recommend Python as the programming language and as you are a new developer, Flask to start with. It gives you a solid understanding on the web patterns such as REST and will get you up and running in no time. However, I suggest you to read and study on front-end technologies like (React or Vue) and databases (SQL and NoSQL) and probably some NodeJS as well. First grasp the concepts (which Python is ideal for) then it does not really matter the language as such.

See more
Decisions about Java and Swift
Ismael Ghanim
Senior Mobile Engineer at Homecoming · | 5 upvotes · 40K views

We chose React Native over native Android and iOS development because of React Native's cross-platform capabilities. React Native has really matured over the years, developing a native feel, with simple and intuitive APIs. The community is also huge, filling in any gaps in the default APIs. These are also the reasons why we didn't choose other hybrid mobile tools. Largely, other hybrid mobile tools don't have the same mobile feel and close connection to the underlying mobile APIs.

At a larger scale, the control that native development offers beats React Native's simplicity. However, at this early stage, it's worth the trade-off. Maintaining two mobile teams and two mobile apps, as we iterate the product rapidly would not be practical. Plus, there is always the escape hatch of native modules if more control is needed.

See more
Gabor Galazzo

As a startup, we need the maximum flexibility and the ability to reach our customers in a more suitable way. So a hybrid application approach is the best because it allows you to develop a cross-platform application in a unique codebase. The choice behind Ionic is Angular, I think that angular is the best framework to develop a complex application that needs a lot of service interaction, its modularity forces you (the developer) to write the code in the correct way, so it can be maintainable and reusable.

See more
Lucas Litton
Founder & CEO at Macombey · | 5 upvotes · 23.5K views

Expo was a tool Macombey really wanted to utilize from the beginning. I have been working with React Native since 2016 and originally I had to use simulators in Xcode, install pods on top of node packages, configure certificates, and more abundant objectives that take time away from actual development. As a development studio, we have to move quick and get projects to our clients and partners in a matter of months.

Expo made this easy for us. We now have a mobile app for clients to download and test their project on, there is no need to install pods or configure Xcode, and development is super fast and reliable now.

See more
Alexandre Desroches
Founder & Developper at Finance D · | 26 upvotes · 71K views

I had a goal to create the simplest accounting software for Mac and Windows to help small businesses in Canada.

This led me to a long 2 years of exploration of the best language that could provide these features:

  • Great overall productivity
  • International wide-spread usage for long-term sustainability and easy to find documentation
  • Versatility for creating websites and desktop softwares
  • Enjoyable developper experience
  • Ability to create good looking modern UIs
  • Job openings with this language

I tried Python, Java, C# and C++ without finding what I was looking for.

When I discovered Javascript, I really knew it was the right language to use. Thinking of this today makes me realize even more how great a decision this has been to learn, use and master Javascript. It has been a fun, challenging and productive road on which I am still satisfied.

Obviously, when I refer to Javascript, it is not without implying the vast ecosystem around it. For me, JS is a whole universe in which almost every imaginable tools exist. It's awesome - for real. Thanks to all the contributors which have made it possible.

To be even clearer about how intense I am with Javascript, let's just say that my first passion was music. Until, I find coding with Javascript! Yep, I know!

So in conclusion, I chose Javascript because it is versatile, enjoyable, widely used, productive for both desktop softwares and websites with ability to create modern great looking user interfaces (assuming HTML and CSS are involved) and finally there are job openings.

See more

Python has become the most popular language for machine learning right now since almost all machine learning tools provide service for this language, and it is really to use since it has many build-in objects like Hashtable. In C, you need to implement everything by yourself.

C++ is one of the most popular programming languages in graphics. It has many fancy libraries like eigen to help us process matrix. I have many previous projects about graphics based on C++ and this time, we also need to deal with graphics since we need to analyze movements of the human body. C++ has much more advantages than Java. C++ uses only compiler, whereas Java uses compiler and interpreter in both. C++ supports both operator overloading and method overloading whereas Java only supports method overloading. C++ supports manual object management with the help of new and delete keywords whereas Java has built-in automatic garbage collection.

See more
Xi Huang
Developer at University of Toronto · | 11 upvotes · 116.9K views

We changed to Python instead of Java to have the back-end processing in the same language as our data analysis module. In addition, Python has a lot of libraries for data-processing. We intend to use Flask for our back-end web development. Flask is a simple, straight-forward framework for our purposes. Flask also has a large community which is beneficial to the development process.

See more
Noel Broda
Founder, CEO, CTO at NoFilter · | 5 upvotes · 100.7K views

1 code deploys for both: Android and iOS. There is a huge community behind React Native. And one of the best things is Expo. Expo uses React Native to make everything even more and more simple. Awesome technologies. Some other important thing is that while using React Native, you are reusing all JavaScript knowledge you have in your team. You can move easily a frontend dev to develop mobile applications.

A huge PRO of Expo, is that it includes a full building process. You run 1 line in the terminal, and 10 minutes after you have 2 builds done. Double check EAS Expo.

See more
Erik Ralston
Chief Architect at LiveTiles · | 13 upvotes · 217.1K views

C# and .Net were obvious choices for us at LiveTiles given our investment in the Microsoft ecosystem. It enabled us to harness of the .Net framework to build ASP.Net MVC, WebAPI, and Serverless applications very easily. Coupled with the high productivity of Visual Studio, it's the native tongue of Microsoft technology.

See more
Brent Maxwell
Chose
Node.js
over
Java
Go

Node.js has been growing in popularity, and the ability to access the global pool of Javascript developers is great. There is a decreased amount of effort for people to work across the frontend and backend, and the language itself is easy and works well for many common use cases.

Go was the other serious candidate, but it just hasn't been implemented in as many Production systems yet, and the best Go engineers I've known have been hackers, whereas we're building a robust analytics platform that requires more caution. Type safety is easily added with TypeScript, and NPM is awesomely handy.

See more
Chose
Go
over
Java

When developing a new blockchain, we as a team chose Go lang over Java and other candidates, due to Go being (a) natively suited to concurrency - there are primitives in the language itself (goroutines, channels) that really help with reasoning about concurrency (b) super fast - build time, running, testing are all much faster that Java, this gives a far superior developer experience (c) shorter and stricter than Java - code is much shorter (less verbose), and there is usually one good way to do things, and even the code formatter that is bundled with Go is very opinionated - over a short time this makes reading other people's code far smoother than having to deal with different styles.

You should be aware that Go presently (v1.13) lacks Generics.

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More
Pros of Java
Pros of Swift
  • 579
    Great libraries
  • 438
    Widely used
  • 396
    Excellent tooling
  • 381
    Huge amount of documentation available
  • 329
    Large pool of developers available
  • 199
    Open source
  • 195
    Excellent performance
  • 151
    Great development
  • 145
    Used for android
  • 144
    Vast array of 3rd party libraries
  • 56
    Compiled Language
  • 47
    Used for Web
  • 43
    Managed memory
  • 42
    Native threads
  • 41
    High Performance
  • 37
    Statically typed
  • 32
    Easy to read
  • 30
    Great Community
  • 26
    Reliable platform
  • 23
    JVM compatibility
  • 23
    Sturdy garbage collection
  • 19
    Cross Platform Enterprise Integration
  • 18
    Universal platform
  • 17
    Good amount of APIs
  • 16
    Great Support
  • 11
    Lots of boilerplate
  • 10
    Great ecosystem
  • 10
    Backward compatible
  • 9
    Everywhere
  • 7
    Excellent SDK - JDK
  • 6
    Mature language thus stable systems
  • 5
    Clojure
  • 5
    Static typing
  • 5
    It's Java
  • 5
    Portability
  • 5
    Better than Ruby
  • 5
    Cross-platform
  • 5
    Vast Collections Library
  • 4
    Long term language
  • 4
    Old tech
  • 3
    Most developers favorite
  • 3
    Best martial for design
  • 3
    Great Structure
  • 3
    Used for Android development
  • 3
    Stable platform, which many new languages depend on
  • 2
    Testable
  • 2
    History
  • 1
    Javadoc
  • 250
    Ios
  • 176
    Elegant
  • 124
    Not Objective-C
  • 105
    Backed by apple
  • 91
    Type inference
  • 60
    Generics
  • 54
    Playgrounds
  • 49
    Semicolon free
  • 39
    OSX
  • 35
    Tuples offer compound variables
  • 24
    Easy to learn
  • 23
    Clean Syntax
  • 21
    Open Source
  • 20
    Functional
  • 19
    Beautiful Code
  • 11
    Linux
  • 11
    Dynamic
  • 10
    Promotes safe, readable code
  • 9
    Protocol-oriented programming
  • 8
    Explicit optionals
  • 8
    No S-l-o-w JVM
  • 6
    Storyboard designer
  • 5
    Best UI concept
  • 5
    Optionals
  • 5
    Type safety
  • 5
    Super addicting language, great people, open, elegant
  • 4
    Its friendly
  • 4
    Powerful
  • 4
    Fail-safe
  • 4
    Highly Readable codes
  • 4
    Faster and looks better
  • 4
    Swift is faster than Objective-C
  • 4
    Feels like a better C++
  • 3
    Its fun and damn fast
  • 3
    Easy to learn and work
  • 3
    Much more fun
  • 3
    Protocol extensions
  • 3
    Native
  • 3
    Strong Type safety
  • 3
    Easy to Maintain
  • 2
    Protocol oriented programming
  • 2
    Esay
  • 2
    MacOS
  • 2
    Type Safe
  • 2
    All Cons C# and Java Swift Already has
  • 2
    Protocol as type
  • 1
    Actually don't have to own a mac
  • 1
    Can interface with C easily
  • 1
    Numbers with underbar
  • 1
    Optional chain
  • 1
    Runs Python 8 times faster
  • 1
    Free from Memory Leak
  • 1
    Swift is easier to understand for non-iOS developers.
  • 1
    Great for Multi-Threaded Programming
  • 1
    Objec

Sign up to add or upvote prosMake informed product decisions

Cons of Java
Cons of Swift
  • 30
    Verbosity
  • 25
    NullpointerException
  • 15
    Overcomplexity is praised in community culture
  • 14
    Nightmare to Write
  • 10
    Boiler plate code
  • 8
    Classpath hell prior to Java 9
  • 6
    No REPL
  • 4
    No property
  • 2
    Code are too long
  • 2
    There is not optional parameter
  • 2
    Floating-point errors
  • 1
    Terrbible compared to Python/Batch Perormence
  • 1
    Java's too statically, stronglly, and strictly typed
  • 1
    Non-intuitive generic implementation
  • 1
    Returning Wildcard Types
  • 5
    Must own a mac
  • 2
    Memory leaks are not uncommon
  • 1
    Its classes compile to roughly 300 lines of assembly
  • 1
    Complicated process for exporting modules
  • 1
    Very irritatingly picky about things that’s
  • 1
    Is a lot more effort than lua to make simple functions
  • 0
    Overly complex options makes it easy to create bad code

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -

What is 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!

What is Swift?

Writing code is interactive and fun, the syntax is concise yet expressive, and apps run lightning-fast. Swift is ready for your next iOS and OS X project — or for addition into your current app — because Swift code works side-by-side with Objective-C.

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

What companies use Java?
What companies use Swift?
See which teams inside your own company are using Java or Swift.
Sign up for Private StackShareLearn More

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

What tools integrate with Java?
What tools integrate with Swift?

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

Blog Posts

Oct 24 2019 at 7:43PM

AppSignal

+8
5
721
Aug 28 2019 at 3:10AM

Segment

+16
5
2109
Jul 16 2019 at 9:19PM

Bugsnag

+3
3
247
+47
49
69251
What are some alternatives to Java and Swift?
C
Abstract
Abstract builds upon and extends the stable technology of Git to host and manage your work.
Go
Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.
Python
Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
Scala
Scala is an acronym for “Scalable Language”. This means that Scala grows with you. You can play with it by typing one-line expressions and observing the results. But you can also rely on it for large mission critical systems, as many companies, including Twitter, LinkedIn, or Intel do. To some, Scala feels like a scripting language. Its syntax is concise and low ceremony; its types get out of the way because the compiler can infer them.
See all alternatives