{"id":500,"date":"2009-01-05T20:11:10","date_gmt":"2009-01-06T03:11:10","guid":{"rendered":"http:\/\/162.243.68.163\/blog\/?p=500"},"modified":"2009-01-05T20:18:20","modified_gmt":"2009-01-06T03:18:20","slug":"programming-with-jsf-its-not-just-an-onion","status":"publish","type":"post","link":"https:\/\/tekhedd.com\/?p=500","title":{"rendered":"Programming with JSF: it&#8217;s not just an onion"},"content":{"rendered":"<p>So here I am, about a month into my foray into the world of Java web programming. For this project I am using Java Server Faces (JSF) with the new &#8220;standard&#8221; (ahem) toolkit of &#8220;visual design&#8221; web controls called Woodstock.<\/p>\n<p>Yes, Woodstock. Let&#8217;s just forget for a second that what they&#8217;ve done here is take the worst part of Microsoft&#8217;s web technology, ASP.NET, and copied it. Let&#8217;s forget that they&#8217;ve done this in a tool that, in order to launch a simple editor, requires about 2 gigabytes of memory, plus swap, to run. Forget all that. Forget that it requires more or less coding blind and &#8220;hoping that things work&#8221;. It&#8217;s called <em>Woodstock<\/em>. If you search (say, in Google) for Woodstock components, by the time you hit the second page you&#8217;re about half buried in furniture and unrelated stuff. And it sounds totally hippie-esque. It&#8217;s hard to search on, and the name makes me think of people hanging around in a muddy field tripping. Actually, that doesn&#8217;t seem totally out of line when compared to understanding data binding to the Table component, so maybe the name isn&#8217;t so far off base, after all.<\/p>\n<p>It&#8217;s just that the Beans framework with the JSF layers feel so huge and clunky. It&#8217;s like driving a rental truck with a manual transmission. If this is enterprise software, why do I have to double-clutch every time I shift? Why do I have to restart Glassfish every hour to clear out memory? Why <em>does<\/em> it require two gigs of RAM to run the most minimal CRUD application possible?<\/p>\n<p>Next time I start a project, I&#8217;m going to spec it in pure Javascript and PHP. (Yeah, right.)<\/p>\n<p>There are layers on layers. Blah blah pattern blah blah nother pattern built on blah library blah blah enterprise session container blah blah blah. This makes it difficult to learn and understand, and slow. There are a <em>lot<\/em> of layers. It&#8217;s not just an Onion, it&#8217;s a Great Big Onion. JSF, the GBO.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So here I am, about a month into my foray into the world of Java web programming. For this project I am using Java Server Faces (JSF) with the new &#8220;standard&#8221; (ahem) toolkit of &#8220;visual design&#8221; web controls called Woodstock. Yes, Woodstock. Let&#8217;s just forget for a second that what they&#8217;ve done here is take [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49],"tags":[191,186],"class_list":["post-500","post","type-post","status-publish","format-standard","hentry","category-music","tag-jsf","tag-programming"],"_links":{"self":[{"href":"https:\/\/tekhedd.com\/index.php?rest_route=\/wp\/v2\/posts\/500","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tekhedd.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tekhedd.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tekhedd.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tekhedd.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=500"}],"version-history":[{"count":3,"href":"https:\/\/tekhedd.com\/index.php?rest_route=\/wp\/v2\/posts\/500\/revisions"}],"predecessor-version":[{"id":502,"href":"https:\/\/tekhedd.com\/index.php?rest_route=\/wp\/v2\/posts\/500\/revisions\/502"}],"wp:attachment":[{"href":"https:\/\/tekhedd.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=500"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tekhedd.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=500"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tekhedd.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}