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

Java

132.1K
99.9K
+ 1
3.7K
Perl

3.4K
928
+ 1
574
Add tool

Java vs Perl: What are the differences?

Introduction

This Markdown code provides a comparison between Java and Perl, highlighting the key differences between these two programming languages.

  1. Syntax: The syntax of Java is based on the C programming language and follows a strict object-oriented approach. On the other hand, Perl has a flexible syntax that allows for multiple programming paradigms, including procedural, object-oriented, and functional programming.

  2. Typing: Java is a statically typed language, which means that variable types need to be explicitly declared at compile-time. Conversely, Perl is a dynamically typed language, where variable types are determined at runtime.

  3. Platform Independence: Java is known for its platform independence, as it can run on any platform with a Java Virtual Machine (JVM). In contrast, Perl is primarily used for scripting and automation tasks on Unix-like systems, although it is available on other platforms as well.

  4. Memory Management: Java utilizes automatic memory management through garbage collection, where objects that are no longer referenced by the program are automatically freed. On the other hand, Perl uses its own memory management system, which relies on reference counting.

  5. Performance: Java is often considered faster and more efficient than Perl when it comes to execution speed. This is mainly due to Java's use of a Just-In-Time (JIT) compiler, which translates Java bytecode into machine code at runtime. Perl, as an interpreted language, may not perform as well in terms of execution speed.

  6. Community and Ecosystem: Java has a vast and mature ecosystem with a large community of developers, extensive libraries, frameworks, and tools. Perl, although still used in some domains, has a relatively smaller community and a more specialized ecosystem focused on scripting and text processing.

In Summary, Java and Perl differ in terms of syntax, typing, platform independence, memory management, performance, and community/ecosystem.

Advice on Java and Perl
Nikhilesh Swaminathan
Needs advice
on
JavaJavaJavaScriptJavaScript
and
PythonPython
Please Help in creating a test framework

Hello Devs,

I am planning to implement a ETL test system for checking data quality and business use cases. I am confused on what stack to use. Any advice on the below will be very helpful.

  1. Any existing frameworks and its source code for help
  2. Any other stack apart from the mentioned stack (that might be suitable)
  3. Any ideas for features are welcomed.
  4. The usage of multiple BE stacks.
See more
Replies (1)

If you want to create using Python language, Robot Framework is one very helpful tool to improve your test scripting and we have a lot of methods created by the community. If you want to use Javascript, Cypress in terms of benefits is the better option to create and maintain tests, and run and generate reports in many browsers is really easy with them.

See more
Needs advice
on
GolangGolangPerlPerl
and
RustRust

I intend to use a programming language which I'll use as AWS runtime and write a script that will comb through tons of files in a directory and its subdirectories and search for simple text regular expressions and process and write the matches in a file as output. I have heard that Perl is good for regex based search but I also want the performance to be good as it will have to go through tons of files for IO. In this post: https://filia-aleks.medium.com/aws-lambda-battle-2021-performance-comparison-for-all-languages-c1b441005fd1, I see that Rust works well as AWS Lambda runtime with very good performance. Which one should I choose as my AWS lambda runtime for this problem? Golang is also an option as it is fast as per the above link.

See more
Replies (1)
Recommends

I used to work in a Perl shop and must admit that the language is very simple for tasks like these, but as you mentioned it's not fast at execution time. I'm now a Go programmer professionally but I taught myself the language while in college purely out of interest and eventually found my way to the job, not the other way around. I've recently been learning a little rust because of how much that language comes up in conversations around Go. I find the concept of the borrow checker nice but I have to admit I feel lost like I am in most flavors of new fancy framework js. That's not to say Rust is really anything like js, but the learning appears the same to me as someone who's convinced they could learn just about any programming language if it was necessary (over time I've seen procedural, OOP, declarative and functional stuff but never programming logic outside of the prolog code I wrote in school).

Go isn't made for your specific task at hand but it's a very easy language to pick up and it has good directory traversal standard library code and good regex (even though with time perl's has been optimized to be faster and I think it's written in C++) but more than anything Go is "cloud native" programming in that an awful lot of new microservice tech stacks are centered around it, docker and kubernetes are written in it, and there's a thriving community whose focus is generally web-first and performance-oriented. This means for your use case there might already be a large cohort of gophers that have asked the stackoverflow questions for you

I personally would push you towards the NYT Profiler for Perl before I would towards Rest, but that's because I know you wouldn't waste any time being able to get to the task at hand and then make it go faster, and I expect all but a few rustaceans would be able to do so with the same speed.

Whatever you pick I wish you the very best of luck!

See more
Needs advice
on
AngularJSAngularJSC++C++
and
JavaJava

I will use Elixir for personal projects. It's productive, reliable, secure, simple, etc. But when performance is critical, I need job opportunities, when I work with mutability, which do I pick? I need advice on which "bureaucratic, mainstream" programming language to pick when wanting performance and jobs. Elixir is often "slow", and it hasn't boomed yet the way Golang and Rust have, so which?

See more
Replies (1)
FREDRICK OLUOCH
Lead Software Developer at Blaqueyard · | 3 upvotes · 55.1K views
Recommends
on
ElixirElixirRustRust
at

Well for those performant tasks maybe you can use Rust nifs for elixir. Elixir enables to write fault-tolerant, scalable code for concurrent systems, and as such, it is perfect for messaging systems and web applications that might need to handle a lot of users efficiently. But if you need speed you can plug in Rust or write a microservice using Goland/Rust.

See more
Sachin K
Cloud Engineer and Developer · | 6 upvotes · 91.4K views
Needs advice
on
GolangGolangJavaJava
and
PythonPython

Hello Folks, my first time here, and for requesting advice. I am trying to create some automation from my cloud stack on AWS to something more cloud native. I have containerised the services, however, I am stuck at DB, my Data warehouse, and messaging. Would love some recommendations on how can I automate this for some future work too.

See more
Replies (1)
Simon Banks
Principal Software Engineer at AtCore Tech · | 3 upvotes · 87.8K views
Recommends

I recommend cloud-init for base setup of machines and configuring them.. Its simple (YAML file) and is industry standard. Even works on bare metal as well as cloud.

See more
Needs advice
on
JavaJava
and
PHPPHP

Hi, I am working as a web developer (PHP, Laravel, AngularJS, and MySQL) with more than 8 years of experience and looking for a tech stack that pays better. I have a little bit of knowledge of Core Java. For better opportunities, Should I learn Java, Spring Boot or Python. Or should I learn Drupal, WordPress or Magento? Any guidance would be really appreciated! Thanks.

See more
Replies (3)
Recommends
on
FlaskFlaskJinja2Jinja2PythonPython

Hard to answer it depend on market. Python + Flask + Jinja2 is better that SpringBoot. Java can be paid better now but I think that future is Python. I code very good in PHP, Java, Python - prefer Python for less code and more effects. PHP is little ugly and limited to web.

See more
Ahmad Zain
Recommends
on
gogoPHPPHPPythonPython
at

easy and used in the most trending tech streams

See more
Recommends

What do you think about Node JS with React? I feel like this stack is fairly paid more than PHP.

I am also a Laravel developer, in process of transitioning towards Node js.

If you wanna personally connect with me, hit me up at @izshreyansh on twitter.

See more
Needs advice
on
C langC langJavaJava
and
PythonPython

Actually, I'll add, C++ and C# as well.

Well, I'm into Computer Science since 1996, so I understand a bit of everything plus a lot of different OSs, I study 10 hours per day every day. However back in the 90s we didn't have books or universities about programming, all were passed through if you knew somebody in that profession. Which I did and in that time, he showed me .NET and MySQL, and that offered a lot of jobs also Java. Today you have a lot of options but I'm already discarding new languages as I believe they will jot succeed.

My always dream was to create game, and software. I don't understand all programming concepts and I'm studying all languages at the same time, so I'm heavy loaded. But that keeps me more aware.

I made a choice: use Python for everything but if you want performance, apps, security, compatibility, Multiplatform. What should I choose? The real question here is: which language should I go 100% and that language will teach me all I need about programming BUT without getting lost in that language forever (I discard any Assembly possibility) and one that has full documentation, support and libraries.

In my experience: I found a lot of info for python and java. But hardly I have ever found anything for C lang, C++ and, what about C# (it's only for Windows, is it easy, I saw a lot of documentation). Thanks!!

See more
Replies (3)
Recommends
on
C++C++PythonPython

Python can be linked with C++ both language are similar in many places (using same libraries or concepts to build libraries) - except memory and static types. C++ is more assembler and have different syntax (need 3x-4x coding more).

If you do engineering it is perfect stack - Java is to slow in coding (4x more code) and little faster than Python - whatever it is hard to mix Java/C++ what is easy Python/C++.

In the most program you do not need super performance but if you need C++ is the best and have rich Object Language much richer than Java and more poor than Python. Python is true object language - everything is object.

Whatever sometimes more important is framework than language for specific use.

See more
Recommends
on
CythonCythonPythonPython

I would go with Python, it is fast to code, readable and very powerful without giving you too much to think about (e.g. memory management). If you're looking for speed, Cython is a fairly good way to get there, since Python is a C-based language it can be compiled to C using Cython and will get you a very significant boost in speed! You can also make use of C libraries if you prefer. The only downside to Cython over Python is that it is compiled and not interpreted, which can make debugging a pain (but you might find yourself doing most of the debugging in Python before switching to Cython). C languages are a bit of a pain to read up on (API, libraries etc.), but Stack Overflow has you covered in most cases!

See more
Recommends
on
JavaJava

All programming languages are cross platform except Java, but even that's not that bad. Performance: C(++), Go, Rust, Java, Ada, OCaml, Haskell, C# Apps: JS, TS, ReScript, Go, C(++), Java, Haskell, C#, Dart Security: Java, Go, Rust, COBOL, C(++), C# Compatibility: Java(due to it's VM), C(++), Go, C# Libraries: Java, Go, C(++), C# Documentation: Java, C(++) (since they are mature) What do you mean without getting lost in the language? I'd not advocate for C(or C++), considering it's hard to understand the memory, and it's for those into programming theory. You are looking for all you need. Go for Java, it has a library for everything, it has a reasonable learning curve, and pretty much you are going to encounter it everywhere- it's like a programming black hole you can't escape.

See more
Sadie Flick
Needs advice
on
JavaJavaJavaScriptJavaScript
and
PythonPython

Generally speaking, what are the most important things you expect a junior developer to know and be able to do from day 1 in your respective tech stack? Firm grasp of OOP? SQL? MVC? ORM? Algorithms and Datastructures? Understanding CRUD & the request response cycle? Database design? framework familiarity? Postman? Deployment? TDD? Git? Language-specific knowledge? Other things?

See more
Replies (5)
Prashant Singh Ahluwalia
Head of Engineering - AIOps at Microsoft · | 13 upvotes · 266.3K views
Recommends
at

Start with building a solid understanding of computer science fundamentals. Understand the basics of building blocks - memory, processing, storage, networking. Understand what CPU bound, memory bound, I/O bound, network bound processes are. Understand the cost of accessing data from Memory vs. Disk vs Network. Understand how multiple CPU threads help in optimizing the performance of a single machine.

Build expertise on a programming language. You may pick any language of your choice. I would recommend starting with Java / Python. Make sure you know one language really well. Build a strong understanding of Data Structures and Algorithms. You should be able to develop an intuition on when to use what. You may practice DS and Algorithm problems, using the language of your choice, on a competitive coding platform (e.g. Leetcode) or by building your own App!

Next, get familiar with basic cloud computing and distributed system concepts. Here is a good resource for that - https://www.youtube.com/watch?v=p7NkTUyEE1o&ab_channel=JeffreyRichter If you understand the computer science fundamentals well, you will be able to apply those concepts here as well.

Hope it helps!

See more
Recommends

Ability to read code and willingness to try to reason flow of operations and information. Tools and technologies change, one doesn't need to have them in toolbelt from day one. All things you name are relevant in some contexts, so it's not bad to understand them.

See more
Luan Himmlisch
Recommends

Just learn to learn. Learn to search and develop your logical thinking, that's all you need. No books, no deep study of how computers work, just logic and willingness to learn

See more
Recommends

For me, it is less of a specific technology you know (although I would prefer you have some knowledge of some of my team stack). It is more the way you get into a problem, the eagerness to learn more, the true sincerity to say "I don't know", the open mind to find solutions in different ways and the "Yes we can" mentality no matter how hard it is.

See more
Recommends

Most employers don't expect from you to know how to implement CI/CD or any other funcy stuff. As junior developer you should focus on building a good toolset of good software practices & principles. Your soft skills are important as well. Learn about soft skills. Be eager to learn, be humble and show you talent and your creativity through your work. If you want to become a good developer ( at first) and a star engineer (at a later stage) then computer programming (coding) is your number one priority . Coding is like painting. Putting aside your talent, you have to practice a lot and improve your outcome each time. As junior developer you can learn how to write good code by studying existing code found in public git repositories (i e , github). As junior developer you should study some good software principles (i.e., DRY, KISS, YAGNI) and always recall them each time you write software code. As junior developer you should learn about coding standards and conventions. You will have to follow to your company's coding conventions (soon or later) as well as you will realize that you have to write code cosistent to the existing code base. At the end of the day, code consistency matters a lot. You have to improve your code day by day. If you manage to follow some good software practices you will find out that you will need an ORM to work with your database. Then you will realize that you need the X web framework to build your REST API etc. To sum up, you will start building a toolset with a single programming language and some good software practices & principles and then you will put new tools in it day-by-day.

See more
Needs advice
on
JavaJavaJavaScriptJavaScript
and
PythonPython

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
on
DjangoDjangoPythonPython

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 · 221.2K views
Recommends
on
JavaScriptJavaScript

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
Jamal Abdinasir
Product manager at abdinasirjamal171@gmail.com · | 1 upvotes · 221.4K 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 · 221K 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
Hüseyin Özkılıç
Senior Full-Stack Developer at RADSoft · | 1 upvotes · 221K views
Recommends
on
JavaScriptJavaScriptLaravelLaravel

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
Needs advice
on
JavaJavaJavaScriptJavaScript
and
PHPPHP

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
Lead Solutions Engineer at Inscribe · | 14 upvotes · 1.8M views
Recommends
on
JavaScriptJavaScript

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
on
JavaScriptJavaScript

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
pramod shirsath
Founder at Supra Software Solutions · | 4 upvotes · 217.2K 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
Recommends
on
JavaScriptJavaScriptPHPPHP

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 · | 2 upvotes · 217.3K 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
Needs advice
on
JavaJavaKotlinKotlin
and
RustRust

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
on
JavaJavaKotlinKotlin

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
Distinguished IT Architect at IBM · | 4 upvotes · 304.7K views
Recommends
on
GolangGolang

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
Reza Malek
at Meam Software Engineering Group · | 4 upvotes · 296.6K views
Recommends
on
KotlinKotlinRubyRubyRustRust

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 · 304.8K views
Recommends
on
RustRust

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
Recommends
on
RustRust

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
Luiz H. Rapatão
Tech Lead at rapatao.com · | 3 upvotes · 297.6K views
Recommends
on
JavaJavaKotlinKotlin

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 · 297.7K views
Recommends
on
KotlinKotlin

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
Radu Maerza
Software Engineer at Freelancer · | 3 upvotes · 297.8K views
Recommends
on
KotlinKotlin

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
Decisions about Java and Perl
Frank Neff

We're moving from Java to Kotlin with our Microservice Stack (Spring Boot) because it is excellently supported by framework and tools and the learning curve is not very steep Kotlin is way more straightforward and convenient to use while providing less boilerplate and more strictness, which finally leads to better code, which is more readable, maintainable and less error-prone. We especially like Kotlin's (functional) data structures, which are, e.g. compared to Scala, easier to understand and don't require deep knowledge in functional programming.

See more
Piotr Czarnas

We have chosen a mix of Java and Python for building an open source data observability tool. The application can work as a standalone command line tool with a rich shell interface (using even command completion). The Java ecosystem is more mature when it comes to connectivity to various databases using JDBC. Also picocli with jline3 let us make a very dynamic shell interface with command completion. The definitions of data quality checks that should be executed are defined in YAML files, backed by a YAML (in fact JSON) schema files. Our YAML files can be edited in Visual Studio Code (and other code editors) with support of the code completion. It is possible because all the data model is defined as pure Java classes for which we are generating a YAML/JSON schema. There is still place for Python because it is very popular in the database space. We are simply starting a Python interpreter in the background (from a Java code). Python is used to evaluate validation rules (defined as Python functions) and render SQL queries from Jinja2 templates.

See more

I wanted to develop a student app that possibly could be used by many teams (students from other schools)

I chose Ionic, because:

  • single codebase: previously, we used React Native for Android and Angular for web/PWA, which was troublesome

  • portability: runs on PWA (which is important, because iOS license is too expensive for school app), web, Android iOS (+ others, if needed)

  • full use of web technologies: Next.js, Tailwind, React in this example (in oppose to Flutter/Java/Kotlin)

  • stability and maintainability: low-entry level due to basic web technologies without new syntax (in oppose to React Native and Flutter), web is really stable and won't lose support (which doesn't have to be true with Flutter/Dart)

See more
Lucas Litton
Founder & CEO at Macombey · | 7 upvotes · 183.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 · | 71 upvotes · 341.5K 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 · 230.8K 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 · 230.9K 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 · | 14 upvotes · 550.2K 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

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
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Java
Pros of Perl
  • 599
    Great libraries
  • 445
    Widely used
  • 400
    Excellent tooling
  • 395
    Huge amount of documentation available
  • 334
    Large pool of developers available
  • 208
    Open source
  • 202
    Excellent performance
  • 157
    Great development
  • 150
    Used for android
  • 148
    Vast array of 3rd party libraries
  • 60
    Compiled Language
  • 52
    Used for Web
  • 46
    High Performance
  • 46
    Managed memory
  • 44
    Native threads
  • 43
    Statically typed
  • 35
    Easy to read
  • 33
    Great Community
  • 29
    Reliable platform
  • 24
    Sturdy garbage collection
  • 24
    JVM compatibility
  • 22
    Cross Platform Enterprise Integration
  • 20
    Universal platform
  • 20
    Good amount of APIs
  • 18
    Great Support
  • 14
    Great ecosystem
  • 11
    Backward compatible
  • 11
    Lots of boilerplate
  • 10
    Everywhere
  • 9
    Excellent SDK - JDK
  • 7
    It's Java
  • 7
    Cross-platform
  • 7
    Static typing
  • 6
    Mature language thus stable systems
  • 6
    Better than Ruby
  • 6
    Long term language
  • 6
    Portability
  • 5
    Clojure
  • 5
    Vast Collections Library
  • 5
    Used for Android development
  • 4
    Most developers favorite
  • 4
    Old tech
  • 3
    History
  • 3
    Great Structure
  • 3
    Stable platform, which many new languages depend on
  • 3
    Javadoc
  • 3
    Testable
  • 3
    Best martial for design
  • 2
    Type Safe
  • 2
    Faster than python
  • 0
    Job
  • 72
    Lots of libraries
  • 66
    Open source
  • 61
    Text processing
  • 54
    Powerful
  • 49
    Unix-style
  • 47
    Regex
  • 37
    Stable
  • 32
    Concise syntax
  • 29
    Hackerish
  • 22
    Easy to use
  • 15
    Swiss army chainsaw
  • 13
    Code Less Do More
  • 12
    CPAN
  • 9
    Freedom
  • 8
    All purpose
  • 5
    Many ways to do it
  • 5
    Familiar
  • 5
    Readability
  • 5
    Community
  • 4
    Modular
  • 4
    Smart (does alot for you)
  • 4
    Object-Oriented
  • 3
    Postmodern
  • 3
    It's the best one-off task language
  • 2
    For a man
  • 2
    Good man pages
  • 1
    Auto case variables
  • 1
    Single Source Library (CPAN)
  • 1
    Multi-threaded support
  • 1
    Hashes
  • 1
    C-style
  • 1
    Multiparadigm

Sign up to add or upvote prosMake informed product decisions

Cons of Java
Cons of Perl
  • 33
    Verbosity
  • 27
    NullpointerException
  • 17
    Nightmare to Write
  • 16
    Overcomplexity is praised in community culture
  • 12
    Boiler plate code
  • 8
    Classpath hell prior to Java 9
  • 6
    No REPL
  • 4
    No property
  • 3
    Code are too long
  • 2
    Non-intuitive generic implementation
  • 2
    There is not optional parameter
  • 2
    Floating-point errors
  • 1
    Java's too statically, stronglly, and strictly typed
  • 1
    Returning Wildcard Types
  • 1
    Terrbible compared to Python/Batch Perormence
  • 4
    Messy $/@/% syntax
  • 3
    No exception handling
  • 2
    Bad OO support
  • 2
    "1;"
  • 2
    No OS threads
  • 1
    Variables are global by default
  • 1
    Copy-on-create for interpreter-based threads
  • 1
    Barewords
  • 1
    Errors/warnings are ignored by default

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 Perl?

Perl is a general-purpose programming language originally developed for text manipulation and now used for a wide range of tasks including system administration, web development, network programming, GUI development, and more.

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

What companies use Java?
What companies use Perl?
See which teams inside your own company are using Java or Perl.
Sign up for StackShare EnterpriseLearn More

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

What tools integrate with Java?
What tools integrate with Perl?

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

Blog Posts

Oct 24 2019 at 7:43PM

AppSignal

JavaScriptNode.jsJava+8
5
955
Aug 28 2019 at 3:10AM

Segment

PythonJavaAmazon S3+16
7
2556
Jul 16 2019 at 9:19PM

Bugsnag

JavaAndroid SDKBugsnag+3
3
427
What are some alternatives to Java and Perl?
C lang
Abstract
Abstract builds upon and extends the stable technology of Git to host and manage your work.
Golang
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