Why does Java have so many releases, unlike C #?

I decided to learn another language and am at the stage of choice.

Java and C # are currently being considered, but are leaning towards Java because it is cross-platform. I will mainly build web applications, but the variety of Java editions scares me. Java EE, SE, ME, FX, what are their differences? Are there any advantages to using one another?

Well, FX for desktops, ME for mobile, SE and EE are the same, but one for business is not the other. So, if I study SE, for example, what needs to be done to switch to EE? Or FX? My problem is that I can’t understand why SE, EE and FX are separate products? They both work with the same JVM, and both can make the same resulting application. Why are they divided then?

+6
source share
5 answers

It is not so destructive.

  • Java SE is the standard for common applications.
  • Java ME for mobile phones, for example, a subset without a floating point.
  • Java EE is an add-on for Java SE for web applications and web servers.
  • Java FX is an alternative to Flash Player, but now with java binding / integration.

Therefore, Java SE forms the basis. Java EE is for web applications.

In the future, java will receive a modular system, and the difference will only be at the library level.

+10
source

Think of them something like this:

  • ME ~ = Compact framework
  • SE ~ = .NET Client Profile
  • EE ~ = full .NET framework (and some extra bits :)
  • FX ~ = Silverlight

This is not an exact comparison, but it is a close enough start ...

+16
source

When you say editor, I think you mean IDE (Integrated Development Environment). The reason Java has so many editors and C # is not because Java is open source, but C # is not. So the only real good IDE you are going to find for C # is called visual studio (it is not free).

I would highly recommend you switch to Java, because almost all the tools are available for use, and even the application servers on which you deploy your applications.

Do not be afraid of java editions, if you want to create web applications, you will need to switch to JavaEE (Enterprise Edition). In any case, this is what each of them does:

SE (Standard Edition): Contains the most basic libraries often used in desktop applications, but is also part of the Enterprise Edition.

EE (Enterprise Edition): used for enterprise applications (not just web applications), so this means distributed programming, from web applications, the desktop to web services ...

ME (Micro Edition): designed for mobile technology, and not just for phones, but also for vending machines, smart TVs, rocket manuals ...;)

FX: This is a rich development platform for quickly creating powerful clients.

As for your question, the differences between EE and SE, I already answered, in other words:

EE is an SE extension that includes EE and allows you to program enterprise applications. Therefore, if you want to program in EE, you need to install SE (just think of it as a system requirement).

I really don't understand what you mean by business. What I can tell you is that Enterprise Edition has in its libraries a tool for developing business components called EJBs (Enterprise Java Beans).

The reason EE, SE and FX are separet products is because separation of concerns is needed.

Example. Perhaps you are creating a desktop application that does not need to communicate over the Internet. Why do you have corporate libraries for distributed programming in it?

Everyone, but the last question makes little sense.

+4
source

The different versions (SE, EE, ME and FX) are just different APIs that sit on top of the JVM (here you can find the full descriptions: Your first goblet ). They are not different languages, so there is no new syntax for learning how to switch between them, just different API calls.

Personally, I prefer C # for developing web applications because of its integration with ASP.NET and MVC frameworks.

+3
source

See description here Java Perspective

+1
source

Source: https://habr.com/ru/post/908091/


All Articles