{"componentChunkName":"component---node-modules-gatsby-theme-medium-to-own-blog-src-templates-blog-post-js","path":"/waffles-are-good-do-you-fancy-a-waffle/","result":{"data":{"site":{"siteMetadata":{"siteUrl":"https://javame.netlify.app","githubUrl":"https://github.com/aterreno/blog"}},"mdx":{"fields":{"slug":"/waffles-are-good-do-you-fancy-a-waffle/"},"excerpt":"During  ThoughtWorks University XI  we took the decision to introduce to the trainees  Waffle  as an example of  MVC framework . I’ve been…","timeToRead":1,"frontmatter":{"title":"Waffles are good, do you fancy a Waffle?","description":"","categories":[],"date":"November 19, 2008","canonical_link":"https://javame.netlify.app//waffles-are-good-do-you-fancy-a-waffle-2da9a3e8e86"},"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Waffles are good, do you fancy a Waffle?\",\n  \"description\": \"\",\n  \"date\": \"2008-11-19T00:00:00.000Z\",\n  \"categories\": [],\n  \"published\": true,\n  \"canonical_link\": \"https://javame.netlify.app//waffles-are-good-do-you-fancy-a-waffle-2da9a3e8e86\",\n  \"redirect_from\": [\"/waffles-are-good-do-you-fancy-a-waffle-2da9a3e8e86\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"During \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://cipher-quaker.blogspot.com/2008/11/final-thoughtworks-university-for-2009.html\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"ThoughtWorks University XI\"), \" we took the decision to introduce to the trainees \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://waffle.codehaus.org/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"Waffle\"), \" as an example of \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://en.wikipedia.org/wiki/Model-view-controller\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"MVC framework\"), \".\"), mdx(\"p\", null, \"I\\u2019ve been impressed by the simplicity of the framework. It has been a while since the last time I\\u2019ve played with any Java Web Framework ( I think it was around 6 years ago the last time, using the super hated Struts 1.0! )\"), mdx(\"p\", null, \"So the first good news is the Java world is alive and some good people are writing great frameworks ( with also the big help of all the knowledge/experience gained using other languages)\"), mdx(\"p\", null, \"I\\u2019ve a very personal opinion on this: many people moved to Ruby and have such a bad remembering of the old times in Java, well I think that frameworks like Waffle keeps the name of Java high.\"), mdx(\"p\", null, \"In addition to that Waffle has a nicer design compared to Rails, no command line scripting ( you might like it, I don\\u2019t ), it\\u2019s not annotation heavy and you don\\u2019t have to write a line of xml ( ok, just one but in the web.xml! )\"), mdx(\"p\", null, \"The only bad thing of Waffle is that there\\u2019s not that much documentation on the web ( I\\u2019ve to say that it\\u2019s so simple to use that you don\\u2019t need it! ) so my goal for the next months will be blog as much as possible about it and prepare some speeches too.\"), mdx(\"p\", null, \"When I find something good I definitely want to spread it, and this is the case.\"), mdx(\"blockquote\", null, mdx(\"p\", {\n    parentName: \"blockquote\"\n  }, \"Waffle is different from the multitude of web frameworks that exist today, in that Waffle:\")), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"has no mandatory XML configuration files (beyond a minimalist web.xml required by any J2EE-compliant webapp)\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"is interoperable with best-of-breed UI templating technologies\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"does not have a base controller class to extend or interface to implement\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"has controller classes that can support multiple actions, each a single method rather than a sequence of initialiation/settter/execute methods\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"has a small learning curve\")));\n}\n;\nMDXContent.isMDXComponent = true;"},"allWebMentionEntry":{"nodes":[]}},"pageContext":{"id":"c6586d2b-7499-5d01-942a-4ab757824dba","previous":{"id":"be305e8b-4919-550c-bb6d-553592a69f3f","fields":{"slug":"/comes-a-time/","published":true},"frontmatter":{"redirect_from":["/comes-a-time-f82f3045d310"],"redirect_to":null,"title":"Comes a time…"}},"next":{"id":"e9ec43dd-8bd7-5fff-8411-33e17c5e37e5","fields":{"slug":"/a-cool-guy-a-cool-software-balsamiq-application-mockups/","published":true},"frontmatter":{"redirect_from":["/a-cool-guy-a-cool-software-balsamiq-application-mockups-87afd59cbe9f"],"redirect_to":null,"title":"A cool guy, a cool software: Balsamiq application mock-ups"}},"permalink":"https://javame.netlify.app/waffles-are-good-do-you-fancy-a-waffle/","themeOptions":{"plugins":[],"config":{"title":"Antonio Terreno","description":"Antonio Terreno's blog archive","shortBio":"","bio":"Principal Consultant at Equal Experts","author":"Antonio Terreno","githubUrl":"https://github.com/aterreno/blog","siteUrl":"https://javame.netlify.app/","social":{"twitter":"javame","medium":"","facebook":"","github":"aterreno","linkedin":"antonioterreno","instagram":"tritonitri"},"goatCounterCode":null}}}},"staticQueryHashes":["4131332129","645483741"]}