4 ms·
The comment is largely the authors opinion, it can be neither correct nor incorrect. It is very possible that what he feels is important and unimportant does n
by papsosouid 13y ago
The comment is largely the authors opinion, it can be neither correct nor incorrect. It is very possible that what he feels is important and unimportant does not generalize to everyone else.
- voidlogic 13y agoNot to mention that he assumes all the faster langs take more effort. What if you could have a lang that is a best performance and be highly productive- he assume this is not possible. The Go code size is pretty small, in fact it might be smaller than the Rails code... I'm still trying to find all the Ruby files, Go is in one file...
- kbenson 13y agoI don't consider the Go size pretty small. Mojolicious[1], Dancer[2] and Kelp[3] have set the bar for small code size for me. Not sure yet if there are smaller ones (note that there are no other files required for those apps, period) In the same vein, Lua's OpenResty[4] looks good, as do Tornado[5], Flask[6] and Bottle[7] (although you need to tease the raw/ORM methods apart to get an idea for the last two). And of course, Sinatra[8]. There probably a lot more, especially for PHP, but I didn't feel like going through that list. [1]: https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/mojolicious/app.pl https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast... [2]: https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/dancer/app.pl https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast... [3]: https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/kelp/app.pl https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast... [4]: https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/openresty/app.lua https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast... [5]: https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/tornado/server.py https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast... [6]: https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/flask/app.py https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast... [7]: https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/bottle/app.py https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast... [8]: https://github.com/TechEmpower/FrameworkBenchmarks/blob/master/sinatra/hello_world.rb https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast...
- voidlogic 13y ago>>I don't consider the Go size pretty small. You realize that Go implements the new template test right? Your linked ones do not (at least the ones I spot checked). Also, Go is statically typed = win
- laumars 13y ago> Also, Go is statically typed = win Actually I find Perl's type system to make the most sense for web work: 1) Any zero length string or 0 valued int is classed as false, which is handy when checking the returns from query strings et al. 2) You can use eq for string comparison or == for numeric checking, which means which is handy has you can read values from a query string and then compare it against an int without having to do type conversion. Don't get me wrong, I don't have anything against statically typed languages - in fact I normally prefer them. But the way Perl does type checking I find reduces the number of type problems when dealing with web development. That all said, I much prefer working with structured types in Go than in Perl.
- kbenson 13y ago> You realize that Go implements the new template test right? Your linked ones do not (at least the ones I spot checked). hello.go uses more lines defining variables and types than the entirely of many of the alternatives I posted. Obviously they will be a little longer if they implement the fortune handler, but I doubt that will really make much of a difference. > Also, Go is statically typed = win I'm not sure what that has to do with implementation size (which is the only thing I was addressing), but feel free to make a case.
- laumars 13y ago> I don't consider the Go size pretty small. Mojolicious[1], Dancer[2] and Kelp[3] have set the bar for small code size for me. You've basically just listed Perl 3 times though. Particularly when the guts of the code in all 3 of those examples was Perl's standard database interface (the same DBI you'd use for CGI Perl or even standalone .pl scripts). I do love Perl for the flexibility of it's syntax and how concise the code can be. But for me the performance of Go won out. And while mod_perl* does make great gains in performance, it also makes the code a lot less portable (unlike Go). So I found myself porting my performance critical webapps over to Go * I've not tried Mojolicious, Dancer nor Kelp so I couldn't comment on how they compare for performance.