2

I have several ideas for web applications, but I don't have much knowledge of web development (I'm more of an old-fashioned Java/C++ developer).

Which would be the best if I want to program, for example something like a small social network? I want to spend as little with learning as possible and I might want to develop Android applications as well, if they succeed.

I heard Ruby on Rails is popular, but there are so many Java stacks.

1

Vaadin

I'm more of an old-fashioned Java

You can use Java to develop web apps with surprising ease using Vaadin.

I want to spend as little with learning as possible

You use Vaadin 8 (a.k.a. Framework), or the prerelease of Vaadin 10 (a.k.a. Flow), to build a web app running Java on the server-side that automatically generates the HTML, CSS, JavaScript, DOM, Ajax/Comet, WebSocket, and Push code necessary to render the user-interface remotely in the user’s web browser. So you need not learn all those web technologies, as Vaadin handles that for you under the covers. Sessions, cookies, encryption, HTTP/2, and all such HTTP technology are handled for you as well.

Vaadin is a open-source free-of-cost technology, many years old and well-worn. The vendor, Vaadin Ltd., sells services (support, training, consulting) as well as few related products such as Designer, TestBench, and Charts.

Vaadin works by you specifying in code (or visually in their Designer product), a layout made up of widgets such as buttons, fields, and labels.

// Layout
VerticalLayout layout = new VerticalLayout();

// Field
TextField name = new TextField();
name.setCaption( "Type your name here:" );

// Label
Label results = new Label( );

// Button
Button button = new Button( "Click Me" );
button.addClickListener( e -> {
  results.setValue( "Hello, " + name.getValue() ) ;
} );

layout.addComponents( name , button , results );

At runtime, that simple Java code is transformed into the needed web code for this user-interface to be realized in a browser.

enter image description here

  • Pure Java on the server-side.
    Make full use of the Java ecosystem. Enjoy using your same powerful Java IDEs such as IntelliJ, NetBeans, or Eclipse. Build your project with tools like Maven. Continue leveraging the rich assortment of Java technologies, specifications, and libraries. User alternate languages such as Kotlin or Scala, if you want. Use Spring, if you want.
  • No Java on the client-side.
    No installing a Java runtime on the user machine. No Java Applets. Users can run any modern web browser, desktop or mobile.

You deploy this app on any of the reliable Java Servlet web containers such as Apache Tomcat or Eclipse Jetty to handle the back-and-forth communication with the users’s web browsers.

Vaadin 10 Flow is being re-architected so that the widgets may also be used by non-Java web developers, as Web Components. In parallel, the Java API continues to be developed. So do not be confused as you read up on Vaadin. Understand that going forward there will be two parallel development routes (Web or Java) to deliver the user-interface widgets built on the same underlying technology. So two ways to get to the same professional-looking business-oriented web-app.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.