Java Technology 2018 You Need to Know
The first thing is to get a reasonable grasp of basic Java.
After that, servlets are the most basic unit of a Java web program. They are very easy to create, and won’t tax your Java skills too much. Filters are also fundamental, and also easy to create. If you use an IDE like Eclipse EE, you don’t have to do much more than install Tomcat and create a new dynamic web project, then add a servlet or filter from the file menu.
Servlets are often used with a template engine, the most popular of which is JSP. This allows you to create HTML pages with embedded Java content. You can try learning about scriptlets (embedded Java in JSPs) to start with; this is good to know about but messy to program with. So after that you’ll want to learn JSTL, a “tag library” that lets you augment the functionality of JSPs with special tags instead of scriptlets.
There are alternatives to JSPs, but all of them are less commonly used (Velocity, Freemarker, Thymeleaf, etc).
You’ll want to connect your web apps to a database, so learn about JDBC and then learn about setting up JNDI (where you configure a JDBC connection in your server). You’ll need to learn some SQL, e.g. with MySQL, a free and very popular database management system.
Once you can write web applications that can perform CRUD operators (create, retrieve, update and delete data), you’ll want to move on to learning a framework. The most popular web framework for Java is Spring MVC.
Spring is a lot easier if you use Maven or Gradle; Maven is the most popular. You can use Maven to build your project, but at the very least just use it to download jars. You can also do this even with basic non-Spring web applications, pulling in the jars you need to connect to a database and run servlets and JSPs.
In Eclipse, you can right-click your project and “convert to Maven project”. Then you get a pom.xml files where you can specify what jars should be downloaded and used in your project, which saves a lot of effort downloading them yourself.
For a quick start with Spring and Spring web apps, try using Spring Boot. You’ll only need to learn at most a few maven commands, like mvn archetype:generate, mvn package and mvn spring-boot:run, and you may not even need those. Maven is very easy to learn to the level you’ll need it.
You can use Hibernate with Spring, but if you use JPA annotations and Spring CrudRepository to work with Hibernate, the actual stuff you’ll need to learn will be relatively minimal.
After this, you might want to learn about creating REST services and creating user interfaces with Angular.js.
There are also some handy non-Java technologies you can use to improve web sites in general, whether Java-based or not; especially jQuery and Twitter Bootstrap.
All of this sounds like a lot, but just knowing about SQL, JDBC and JSPs by themselves will get you a long way; the rest of this stuff is just elaborations on the basic theme, aimed at making things easier and faster to develop but at the expense of having to learn new stuff.
----------------------------------------------------
Honestly, stay clear of JSP and JSF. They're really old and not particularly productive technologies (despite being Java standards). Learning the Servlet specification is pretty useful though. It's a Java standard and many of the frameworks mentioned below are built on top of it.
Most professional Java web developers are using some form of MVC framework or building REST services that can be accessed via AJAX. There's also some notable compile-to-JavaScript frameworks that allow you to write Web UIs in Java.
In terms of MVC frameworks, I would suggest Grails, Play Framework or Spring MVC.
If you want to try building RESTful services look at JAX-RS (Java standard for building REST services), particularly Jersey which was the reference implementation of the standard (and pretty awesome). The Dropwizardframework is a great way to get started. Restlet and Spring MVC are also great frameworks for building these services. You will then want to pair your REST services with a single page application framework (JavaScript) like Ember, AngularJS, Knockout, etc.
Most professional Java web developers are using some form of MVC framework or building REST services that can be accessed via AJAX. There's also some notable compile-to-JavaScript frameworks that allow you to write Web UIs in Java.
In terms of MVC frameworks, I would suggest Grails, Play Framework or Spring MVC.
If you want to try building RESTful services look at JAX-RS (Java standard for building REST services), particularly Jersey which was the reference implementation of the standard (and pretty awesome). The Dropwizardframework is a great way to get started. Restlet and Spring MVC are also great frameworks for building these services. You will then want to pair your REST services with a single page application framework (JavaScript) like Ember, AngularJS, Knockout, etc.
---------------------------------------------------------
HuThe shortest and most direct answer to your question is, It depends on your goal.
But I recommend you to learn Javascript first because :-
- It dominates the realm of front end web development.
- Later you can learn technologies like Node.js for back end which uses Javascript for server side scripting/applications.
Most of the programmers who know Java is because they encountered it as their first language in introductory computer science courses in schools and colleges. Now most of the universities are shifting towards languages like Python etc.
Also for Desktop application development Java is losing its dominance. But Java is still an industry standard language.
Also for Desktop application development Java is losing its dominance. But Java is still an industry standard language.
If you want to develop android apps, in which Java is required, you can develop your app as a web app using Javascript and then use something like PhoneGap to convert it to smartphone apps not only for android but also for windows and iOS.
If you look from job perpective,
Java is the industry standard language most of the firms use it for application development, there are many questions on the internet asking why don,t they shift from Java, to which you will read answers like they already has a huge codebase in Java it will take time to shift their whole codebase to some other technology, with Java its easy to maintain and update code, its easy to find good Java developers etc.
But same goes for Javascript if you look at web development side.
What I want to convey is Java is replaceable and getting replaced slowly with time and with the origin of other technologies.
But Javascript is irreplaceable, you may find other frameworks like brython for python etc but none can beat Javascript in performance and browser compatibility.
Whether you pick Javascript or Java it doesn't matter until you are willing to learn some frameworks based on these languages. For any good projects you are going to need abstractions i.e. third party libraries and frameworks to build something new. Don't plan just to learn the basic syntax, variables, types, OOP, etc but after learning all this go for some good framework.
Even if you are just looking to learn the basics of language like arrays and other data structures I recommend Javascript because it has a much cleaner/user friendly syntax.
With Javascript you will get to know something called “event driven programming”, your code snippets will run based on events fired on the webpage, for example, a button click on web page can fire a function at the same time hover on it might be firing some another function. You will not get to do this in other programming languages until you are doing GUI development.
______________________________________
- Now a days some JavaScript tech are highly in demand for web development. Lot of libraries are there like React.js, backbone.js, angular.js etc. We can also do server side/ back end development using JavaScript i.e. Node.js
- Along with that NoSQL databases are highly in demand like MongoDB etc. These make entire stack for JavaScript i.e MEAN stack(MongoDB, Ember.js, Angular.js and Node.js) Ember is not as used as much Angular/Node.
- For java it is used in programming as C language,desktop application +web application back end i.e. work with database and making login etc It uses J2EE which is java based includes Servlet, JSP, Spring, Hibernate which is used for dynamic website development. Java has usage in lot of field Networking, Embedded device, Android, Hadoop and what not.
- Java and JavaScript are different but some similarity can be found as in methods.But it does not effect you can learn any one you want first or both at a time.
- You may refer Learn to code and W3Schools Online Web Tutorialsfor learning JavaScript . This was traditionally used for client side validations and front end i.e. view of your website.If you want to do front end web development learn HTML,CSS before it.
- There is no clear answer for future. JavaScript is quite hot these days after new libraries came but there was a time when java was quite hot. Java has survived 30 years and is being used widely now as well that’s a plus point for it. I think java is stable for now and It will be used in near future as well. Can’t predict how things take turn in future for JavaScript boom.
------------------------------------------------------------------------
In my opinion, the language or tool should be the least priority while deciding the career. Languages come and go, what doesn't change is the engineer in you. Learn better engineering, better coding practices, unit testing. The more important one is to ask - what does a project do ? What is the scope, requirements, complexity, my role, learning and growth opportunities. Java, javascript, python, Ember, Erlang, Node, vert.x, Clojure, Scala. All are there for reasons, learning one would not make you fit for all the requirements. Yes - you should know different kind of languages. But that should not be a career choice you should make. After 10 years of experience, I was asked to write Flex, C. Did I have a choice?
-----------------------------------------------------------
business layer vs service layer java
https://www.udemy.com/rest-api/
aem java
jcr jaVA
drupal
---------------------------------------------------------
229
417
|
There is quite a lot of gui frameworks out there for java, but what is recognized as today's framework of choice?
The following is my understanding of the different frameworks, please correct me if im wrong. This is a very loosely defined set of questions, but i still think its valuable for anyone thinking of creating rich gui applications.
Is the very foundation of swing, it performs well but is lacking in advanced components. If you intend to create rich applications, AWT is probably not the way to go. However for smaller gui applications that doesn't require rich user interfaces. This might suit perfectly as it's a tried and proven framework.
Based on AWT as previously stated. In its infancy it was regarded as slow and buggy and caused IBM to create SWT for Eclipse. However with Java 5 (or 6?) Swing became the framework of choice for building new applications. Swing has a lot of rich components but are still lacking in some areas. One example being that there isn't a full featured TreeTable component which can do sorting and filtering/searching.
Created by IBM for Eclipse, they seemed to think that Swing was not suited for Eclipse at the time. By itself is pretty low-level, and it uses the platform's native widgets through JNI. It is not related to Swing and AWT at all. Their API is however somewhat clunky and not intuitive. They do have some advanced component's like a TreeTable. (but i don't think they support sorting and filtering out of the box). SWT uses some native bindings (through JNI?) and the rant on the internet is that this framework should not be used in today's projects. (why not?)
Based on Swing and it's mission is to create rich components for swing. Still under development. (not very active though.) Have a very nice set of components, like for example TreeTable. But the TreeTable does not support filtering and sorting as far as i know. It does however support searching with highlighting.
JGoodies
A framework which i know nothing about... What is it's strengths and weaknesses? What set's Jgoodies apart from the rest?
The latest flagship of Java/Oracle. promising to be the facto standard in developing rich desktop or web applications.
It renders UI using Java2D, thus minimizing the impact of (IMO, bloated) legacies of Swing and AWT. (@Augustus Thoo)
It's main focus seems to be on RIA (Rich internet applications), but it seems it can also be applied to desktop applications. And as a personal comment, Looks very interesting! I Especially like that it's an apache project.
A java wrapper to the native qt library which is written in c/c++. Very powerful, widely used and accepted. Has a lot of GUI components and a easy to use API.
So, to try to summarize a bit of what im asking:
Say i wanted to create a desktop application today in Java which involves a lot of advanced components, what should i choose? And why?
Which one of these frameworks should be recognized as deprecated and which should be recognized as the frameworks of the distant future?
What is todays de-facto-standard framework and which tools do you utilize to create java gui applications?
I might regret asking this, but ill try it anyways:
C#/.Net is said to have a very good set of easy to use components which can be flexed in every direction possible. And after investigating different java frameworks to some extent i can't seem to say the same about Java. Why is this? Why doesn't java (which is the most widely used programming language in the world) have the same set of GUI components?
Is it just that java has based their gui components at a much lower level, and it is possible to write all these advanced components that im looking for, but you have to do much if not all of the work yourself?
|
Comments
Post a Comment