Which programming language for backend (web)?
To all programmers,
Which programming language do you use in the backend and which one would you recommend?
I know this is a very controversial question, but what would you recommend to get a job in Germany?
If you look at YouTube, most people say Java – no, C# (.Net) – is outdated (but they are also American YouTubers, so it seems things are different there).
The recommendation is: use Python (Django or Flask), Ruby, GO, etc. (the new languages).
However, if you compare that with the current job offers, for example at Stepstone, then there are currently 14 job offers in Germany for Django, so for me a clear no to continuing to learn this language (the same applies to all other languages)…
Java or C# (or PHP, but companies usually use WordPress) are required, but these are also the languages that no one currently recommends, so I'm torn.
I'm currently using Django on the backend with AWS, Ubuntu 22.04, NGINX, and Gunicorn. However, no one in Germany uses Django, so the question is: What actually makes sense to learn that many companies also use?
Because according to the job offers, Java is in first place and then C# comes second, for all the others there are hardly any offers.
It's a similar problem with front-end frameworks. It seems like new frameworks are being introduced every week, but applications require Angular (most job offers), then React.js, then Vue.js. We don't need to talk about all the other frameworks, as there are virtually no offers for them.
Unfortunately, there are many trends you shouldn’t always follow or you can question. Example Tailwind.
The many CMS solutions working with PHP (Drupal, Joomla, Typo3, WordPress, NEOS, etc.) and also almost all Webhoster PHP support and this language is widely used in the world of work, you can watch PHP. The criticism of PHP is associated with the old versions of the language and the security architecture that you can create yourself. But PHP is powerful with version 8.1 and has been specially developed for web development – that is, you have the complete range of functions to develop a complex web application.
Since I have worked with all the languages mentioned above, I know very well the advantages and disadvantages of each language. Each language brings different skills.
Anyone who builds "web applications" usually builds more web than application. Will say the "Backend" is actually just a small appendage with little logic and little database and API calls. The Djangos and Rails of this world are good and happy to offer.
But who builds large, complex, scalable applications, among other things also have a web UI, the world looks completely different. And yes, there dominates Java and a colorful bouquet of other languages comes naturally.
So you have to decide what you want to do.
LOL. Python and Ruby are clearly older than Java & Co! Go is, of course, younger, but like the above, only one niche has occupied itself. I find the name of Ruby amusing: the great hype around Ruby is over at least 15 years. Sure, thanks to Rails, it is still popular for the above "web applications" in some companies. But otherwise it is largely irrelevant, except perhaps a bit in Asian markets.
Conclusion: You should not make such decisions dependent on any YouTuber. They swoop a lot of nonsense when the day is long, that's their business model.
This "old/new" discussion is anyway nonsense. Almost every language continues to evolve, not always meaningful (as you can see on the "Kitchen Sink" approach from C#, in which every fashion feature is stuffed into an ever-planned inflated language), but still. It ultimately plays little role when a language was created, but how good and active it is developed and used. And of course, how well it fits for the respective field of application.
20, 30 years ago, it was believed that there will be one language that will replace all others. The exact opposite occurred.
Sorry.
Perhaps this has been the case with your projects so far, but it already depends on the type of project. With a current project I work on, the backend part is more extensive than the frontend.
Of course, there are also projects where one actually displays only more or less blunt data, but also those projects where the business logic in the backend can be quite complex.
Odeer mean that with “big, complex, scalable applications”? Then your initial wording “who builds “web applications” is more than misunderstandable 😉
Java, if you want to be in more established companies for longer. PHP is also very strongly represented, but then rather for such online shops or platforms and most likely rather than service.
Own products are probably usually written with Java, but popular with own products is also b and sometimes C#. For more recent developments there is a lot of JavaScript based stuff. Since every company just feels “AI” screams, however, Python is not a bad choice, but only if you want to work very deeply into mathematics and then in ML frameworks like PyTorch. It is more likely, however, that many companies stay more superficial there and grab an API in their existing environment.
In the company I work various is used, in my area with a few dozen projects mainly the combination Java and Angular is used.
With C++ and C#, you also do not make a mistake, even this is often used.
As far as frameworks are concerned, it is the most important thing to be familiar with Javascript, CSS and HTML and to be able to work quickly. Then you’re flexible.
Knowledge in Python or Ruby is certainly also good, but my impression is rather rare in large companies, rather small.
I don’t understand?
C# or .NET should be outdated?
I don’t know any technolodie that’s more up-to-date, Microsoft’s skin updates and new features in the record tempo, constantly integrating the community.
If then Java is outdated as far as I have heard, Oracle will/was treated with a little bit of apprehension if it is not relevant to database system.
Of course, that doesn’t mean that Java is bad, who has know-how with Java and does not have C#, can stay with Java, for most projects that’s all right. But I expect Java to be on a descending branch and it is only a matter of time until it will lose more and more importance.
There are definitely more job offers.
However, many companies work with recruiting companies and headhuntern and do not (more) take care of their job offers. And these service providers work with XING, LinkedIn and Co. and maintain their own personal network and “buy” the applicants from other companies.
I don’t know how to arrange Java, but you can call through a few recruiters, how many Java and how many C# sites they are looking for. However, note that some might have specialized in technology.
I’m not so deep on the subject of Java, but as far as I’ve heard, it’s because Java has been developed a little earlier than C# and was better at first, and because of the technology that was still unique at the time, it has developed an enormous range. This means that there are simply still extremely many Java projects or developer teams with a lot of Java knowhow and how will of course stay with Java.
However, C# – as far as I get this – is currently driving on the overtaking track, so it is only a matter of time until it has overtaken Java.
Especially on the web with ASP.NET Core, Blazor and EFCore, the .NET ecosystem and C# are very popular. Lastly, a recruiter/headhunter told me that more and more companies are looking for experienced developers with this Tech Stack and he could easily communicate to a number of companies to significantly better salaries just because I have a lot of experience with it. I also believe that he did not sound like a typical sales talk when he laughed at it.
I don’t know anything called.
Python is very popular among beginners (does God why…), as far as I have heard, but rather less for companies. More experienced developers, in my experience, tend to be a strict typing, as the compiler can reveal many problems in advance and also forces them to better code.
And, in my knowledge, Ruby and Go are still relatively little spread, so I don’t understand why a company should rely on it if it doesn’t need advantages that only it does?
But what is a rather less common language, which has a significant advantage: Rust
This should be extremely good in terms of performance, but without becoming as extremely complex as C/C++. For this reason, Microsoft also rebuilds some core services from Office with Rust because they simply need this extreme detail optimisability with less complexity that is not possible with a managed language like C#. This does not mean that C# is slow, but you can simply optimize with C/C++ or Rust much better in detail, which is in the nature of the thing.
Rust could become a very important language in the medium to long term.
Please no PHP…
I’ve heard from a lot of places that they’ve abolished PHP or they’ve got it. My current company is changed from PHP to C# with Angular and then to C# with Blazor.
There are, of course, many companies that work with PHP, but not because all companies want to work with PHP, but because of such frameworks as WordPress or because they have ancient projects in PHP or large teams with a lot of PHP knowhow. PHP was very widespread for a long time, of which it still worships today, but the time is over.
JavaScript frameworks have the advantage that the backend doesn’t care about it, but also the disadvantage that you need JavaScript or (which is a little better) TypeScript.
In the current .NET environment there is actually only Blazor or the predecessor Razor and at least Blazor attempts to use as little as possible JavaScript, which is by far the largest part of the code is C#. And then, of course, there are still community projects, but I don’t think they’re coming to Blazor.
I would recommend you to rely on technologies that have been firmly established in the market for several years. Their spread is accordingly greater. It is easier to find employers/projects working with it.
In the field of e-commerce/enterprise applications and microservices, my experience in Java (Spring, JakartaEE) and C# (ASP.NET) dominates the market.
For small to medium-sized web applications (e.g. portfolios, small/medium-sized webshops), the probability is the greatest to meet PHP. Not least due to the popularity of CMS (such as WordPress, Drupal) or a shop system such as Magento.
Ruby (on Rails) is very diverse (as it is very well suited for rapid prototyping/development and well scaled) (both in startup, e-commerce and enterprise applications). In comparison to the languages mentioned above, Ruby is less popular. In general, however, this is a technology that has been keeping its market share quite stable for many years.
As a breakout in my listing, I would consider Next.js. Although it is a relatively new framework, it is well suited in combination with Headless CMS, which are increasingly used and can offer better performance optimizations (such as SSR) compared to React.
Behind all these statements/recommendations, further information (e.g. an associated justification) would be interesting to arrange them better.
At least that’s how I can’t understand them.
This statement is not correct as you have already found out yourself with the help of Stepstone. On my own, I wouldn’t reduce myself to this job market and you can’t be sure if any job offer for Django explicitly mentions Django in the request profile.
But yes, the offer in general is quite limited in contrast to PHP & Co. Therefore, you should look for such a case in the context of IT-Ballungszentren such as Berlin, Munich, Hamburg, Stuttgart or Frankfurt (Main).
If you want to enter as a frontend developer, I would recommend you to learn JavaScript and TypeScript (as a basic set), as well as a currently popular framework of your choice (Angular/Nextjs/React/Svelte/Vue/…). When looking for a job, I wouldn’t be so limited to a framework. If you can Angular, but React is desired, you have to do it later. Companies looking for front-end developers are also calculating this.
In principle, it would not be wrong to inject into 1-2 other programming languages (and webframeworks). There are also greater differences between them. You not only learn about it, but you could come to the conclusion that the style as well as the concept of one technology might suit you better than the other. The fun factor should also play a role in job selection.
If you ask me for an explicit recommendation, I would refer to C# in this respect. On the one hand, this is a highly typified, object-oriented language, which (together with .NET) offers great features (e.g.: type interference, DI, Linq, async/await, etc.), which make the programming of complex software very pleasant.
On the other hand, you can learn a lot of good support from Microsoft and the community. There are numerous learning sources and fantastic development tools such as Visual Studio or Rider.
I use C# in the backend. Before that it was PHP. The setting up of PHP was the horror, which is why I gave up and changed to C#. My best decision.
Education or studies. It's not easy as a cross-income. You really have to have something on the box. Learning yourself is not enough. This is a long-term process and education and study can help enormously. I would recommend JavaScript, a language that is very often used. However, Rust also grows more and more slowly. Even though the language is not so widespread, it has potential in the future.
C# and old? No, Java? Yes, Java has been many years old. It is hardly waited, only little new comes in and generally it is very denied. But as far as I know, Oracle's main feature is databases. C# is older, but not as old as Java. But how would I stamp a language as old? If hardly any updates come, little new features and hardly anyone cares. But C# makes enormous jumps. A few years ago it has broken out of the Windows ecosystem and is now cross platform. With .NET as a framework you have an extremely stable framework on the page and an update with fixes and features comes every year.
I can't say anything about Ruby, and Go can't say anything. Go should be particularly good in/for cloud environments. I find Python the horror. Everyone should like what I want, but most libraries are bad to not documented (own experience). And these are not the new ones. Some of them are old. I think python would even have to be older than C#, which gave a quick search, but can also read me.
Just PHP won't go from us so fast. Many CMS build on it. However, there are also many web development companies that make pure templates and plugin installation and hardly ever develop themselves. JavaScript and Python are much in use, but more JavaScript. I wouldn't be looking for a job you need to adapt to, but one that suits you. I wanted C#, I did research, and then I applied to a place in the .NET area. I've been working there for a while. It's always nice to do what you like.
You have to expect Java jobs to have particularly old projects and it can happen that you are more concerned with old projects and do nothing new. In C#, the trend starts right, which is why you usually have more recent projects or even more newly developed (exceptions can always exist). (Don't say that you don't have new projects in Java jobs too, because you have that too).
Finally, I can only tell you what you like. Don't look at yourself, but find something that suits you. If this is Python, find something with Python.
The release cycle for Java versions is 6 months. If you want to compare this with C#, PHP or Python, it’s about a year. Various bug fixes are used even earlier. So you can definitely not talk about missing maintenance. The further statements are also very surprising, only when one looks at the development of recent years.
When starting from the year of publication, there is a ten-year span between Python and C#, six years between Java and C#. For a comparison, however, this is not as important as the view on how a language has changed with time. None of the languages mentioned have remained in development, all three have changed considerably compared to those at that time.
What? That’s all bullshit. Did you see what happened to Java in recent years? https://advancedweb.hu/a-categorized-list-of-all-java-and-jvm-features-since-jdk-8-to-21/
And what exactly is “bug”??
Backends for websites in the professional environment is dominated by Java and C#.
Why would you recommend C# rather than Java? Does C# make more sense than Java?
I would take a distance from a point of view, as both languages are equally well represented and provide good performance.
If one tries to roughly compare both languages, one could call C# as the language that offers more syntactic sugar (e.g. zero-coalescing operator, auto-properties for getter/setter) and more often oriented towards features of functional programming languages (e.g. the implementation LINQ was inspired by Haskell). Java has stricter principles in terms of expression and therefore acts in the syntax more rigorously and more dizzyingly. If you were looking for shortening equivalents, you would rather be found in external libraries such as Guava or Lombok.
With regard to web development, Java has a wide range of different frameworks developed by various companies or organizations (e.g. Apache or Eclipse Foundation). At C# it focuses only on ASP.NET. If you were looking for alternatives (which, in my opinion, there is no real reason), you would probably only encounter private mini-projects.
If you wanted to use jump for a comparison with ASP.NET, then a stronger modularity is likely to arise first. The setup of an application requires more configuration, overall it is harder to learn jump than ASP.NET.
I just know C# much better than Java, and just find it good.
Maybe Java is just as good, but I don’t know.
As someone who has to work with both speakers, I can say that Java is a good one if you know C#. C# seems like luxury. Not only does C# offer so much more possibilities, no, also to get applications to run is the horror at Java. Have spoken to some who develop pure Java and also like it very much. They all have problems. Ultimately, you have to decide what you prefer, but C# is actually much more modern