Dedicated to Eclipse users: Screwdriver 3.5.6
Screwdriver is now ready to work: it is a stand alone java-maven application, it includes all source codes and much more.
What's its purpose?
It is a Java source code generator, capable of building a Java web application characterized by the synergy of the Maven, Hibernate and Spring MVC frameworks. Its reduces development time, therefore increases developer productivity. Obviously he cannot create a complete application, he does not have a magic wand. But it does many things: for example, it sets all the @Controller classes and all the @RequestMapping methods: the developer has only to implement them. This is a dream.
How is it possible?
The developer must describe the application by means of a new language, the ELE language (short for "elementary'). Really it is an elementary language. Someone will say: but then you don't solve the problem, you move it. No, I move it but I reduce the difficulties by an order of magnitude. It is a step forward in reaching the goal that for many years has been considered only a utopia, the transition from the procedural paradigm to the declarative paradigm.
The generated application is not strange, it does not include proprietary software or particular structures or frameworks: it is a classic, good Spring / Hibernate / Maven application, so it can later be maintained without knowing absolutely anything about Screwdriver, which generated it.
Screwdriver includes Spring Security.
With the ELE language I set the whole application, including the JSPs. JSPs are rough, in the sense that they have no colors, designs, animations, etc .; but they are fully functional. For example, if I need a back-office application, I can do a CRUD of a database table in a very short time, with all the graphic controls (text boxes, check-boxes, list-boxes, etc.) working. Since the application is Spring MVC, then it is possible to deliver the JSPs to a web artist to make it beautiful, to move this element to the right and this one to the center, but without changing anything of the Java code.
If it is a stand alone, why not start with a jar?
It could do this, but Screwdriver was designed as an open source application, so it is prepared to be modified according to the needs of each. Each user can then redistribute their Screwdriver application enriched with new features.
Once the application is built, even after I have added business logic and any other material, I can perform perfective maintenance: edit the ELE file and run the process again without damaging the code I added. This is possible by a mechanism described in the reference manuals.
How much time does a developer who has to write a web application save with Screwdriver? Obviously nothing must be stolen from the project, all phases must be respected. But when the project passes into the hands of the developer, a beginner saves at least 2 weeks, even counting the time he needs to learn the ELE language. An experienced worker, for simple applications, saves 2 or 3 days. If you have to write one application per year, Screwdriver is not convenient. But if you write one a month, it's a miracle.
Also, sometimes we give up writing a back-office application because there is no time, we remedy it using a much less comfortable (therefore less secure) tool. With Screwdriver, on the contrary, the time to do it is there.
Maintenance also benefits: I can preserve the source code I wrote, while Screwdriver restructures everything else, modifying JSP, RequestMap or DB entities.
Screwdriver still does not produce Spring Boot applications, it will be in future releases. But the "old" Spring 4 is still a giant in information technology world, surely it is not at sunset.
Screwdriver still does not produce web services.