“What is the point of using a tool that will facilitate you to do something you don’t even know what it is? That’s not facilitation. That’s ignorance support and MUST be avoided”. Mário Júnior
The web is a very interesting and powerful platform but exploring its powers requires knowledge of their existence and a bit of its internals comprehension. The most essential terms when we talk about web are: HTTP, HTML, CSS and JavaScript. Some people would argue that I should add JSON to the list, but lets just say JSON is included in JavaScript. If you know these terms and you are familiar with them, then you got a word to say about web development.
The terms I just listed define the web and most of them are not just terms, are languages with their very own purpose, syntax, and limitations: HTML, CSS, JS.
Imagine having to write HTML, CSS and JavaScript without the proper tools to assist you for example: debugging JavaScript code, Inspecting CSS properties and DOM Elements. This was the stack of challenges that web developers had to face long back ago if they decided to embrace that trio. To get around this, technology companies came up with Frameworks literally giving developers the possibility of building web application without having to master HTML and CSS and without even writing a single line of JavaScript.
ZK, JSF, ASP, all them still sell with that same propaganda, but now we have the tooling we needed to use that trio.
Now we got web browsers with super-powers and we don’t just want to be presenting forms to users. These new features the browsers are supporting, are supposed to be used to enhance business processes, to make an effective change in users lives and this is why I brought this conversation to the table, because most of us seem to be stuck in that tooling-less time.
People no longer make jokes about JavaScript, they follow it, they love it so much that they even made some effort to have it running in other environments different from web browsers (take the NODE.JS project as an example). Microsoft even invested creating TypeScript and yet you hate and fear JavaScript?
Some people would argue that in enterprise, “how it looks” is not the most important, because the most important is that “it works”. For these people, I would say: “How it looks” defines the time the user will take to accomplish his goals, “How it looks” may not matter when you are offering a solution to someone that has no choice, because if that person has a choice, trust me, I would stick to the solution that works and looks better. People don’t want to open their browsers on their retina display powered screens to see some “basic” web app that “just works”. Wake up fellers, it’s not the “just make it work” era anymore. Presentation can make people happier and happy people are guaranteed to deliver better results, now tell me that’s not an “enterprise” matter!
We can also shift the view, from the end-user perspective to the software design perspective. Frankly speaking, web servers are only useful nowadays because they allow us to deliver dynamic content. But the client-side (Browsers) only understands HTML, CSS and JS. The framework you use, being it ZK, JSF, ASP or whatever HTML generator engine you use that sells you the “no javaScript” propaganda, will actually generate HTML, CSS and JavaScript and then send it straight to the browser. What if you write HTML, CSS and JS by yourself? What if you separate the client from the server, as the best practices suggest (separation of concerns)? Wouldn’t you get a clear vision of what each of the layers should do? Instead of gluing them and building some monolithic and server-dependent web app? Wait! Did I just say “server-dependent”? Yes I did say that and what I was trying to say is that, you shouldn’t need a server to test the UI (only the UI) of a web app. If you detach your UI from your Back-End and use pure web technologies (CSS, HTML and JS), you get the chance to explore the maximum of each of the parts and that’s what you are supposed to do. You are supposed to give the best you can and right now, PrimeFaces, ZK, Telerik, IceFaces, etc, are the best you can. These tools are limiting your power, thus, limiting the power of your enterprise.
I have nothing against these ideas, companies, or their owners, and I don’t want them to be extinct, I want them to evolve their business too. I want them to stop selling frameworks that will uniformize UI and start selling services. I want them to sit and build a UI for a specific problem, with the attention that specific problem deserves, using the pure web.
I had this idea for too long in my mind and I lived with the fear of unleashing it, but then I realised I’m not the only one with this thoughts. I’m a big fan of Martin Fowler, I have been reading some of his articles, watching some tech-talks of his and he is a professional I admire and I look at as an inspiration. When I figured out that the company he works for, is kinda advising people to do exactly what I have been thinking about, I told myself: “It’s time to unleash this thoughts and raise a debate if necessary”. Martin fowler works for ThoughtWorks, a software respected company that have developed solutions for companies all over the world and here is what they said about JSF and ASP Forms:
“We continue to see teams run into trouble using JSF – JavaServer Faces – and are recommending you avoid this technology. Teams seem to choose JSF because it is a Java EE standard without really evaluating whether the programming model suits them. We think JSF is flawed because its programming model encourages use of its own abstractions rather than fully embracing the underlying web model. JSF, like ASP.NET webforms, attempts to create stateful component trees on top HTML markup and the stateless HTTP protocol. The improvements in JSF 2.0 and 2.2, such as the introduction of stateless views and the promotion of GET, are steps in the right direction, maybe even an acknowledgement that the original model was flawed, but we feel this is a too little too late. Rather than dealing with the complexity of JSF we recommend teams use simple frameworks and work closely with web technologies including HTTP, HTML and CSS.” ThoughtWorks Radar
I think the essential was caught. Let’s embrace the real web and lets also innovate in presentation in order to enhance and improve the life of our customers and partners.
I want to end this article with a question for the local enterprises (Maputo/Mozambique): Why aren’t you hiring Front-End/UI/UX engineers? Would it be because you are going monolithic or because presentation doesn’t matter?
I want you to leave a contribution on this article. Say something on the comment box down there.
It’s always a pleasure for me to share my thoughts with all of you guyz.







Comentários Recentes