18 ms·
Why Ruby?
- Maven911 14y agoAnd where is php in all this, is it really considered a dead language?
- voidlogic 14y agoWhile not sexy and hip, remember 35 percent of web traffic is handled by PHP... PHP is still a player. I'm not a huge fan of either PHP or Ruby, but with HipHop PHP apps seems to have a path to higher scalability. All languages eventually decline and die, and while PHP might be declining (and as of this year maybe Ruby too) PHP's death is going to be extremely slow, probably decades. In 30 years I would not be surprised if PHP is the COBOL of web development.
- anonfunction 14y agoRuby isn't cool any more. Yeah, you heard me. It's not cool to write Ruby code any more. All the cool people moved on to slinging Scala and Node.js years ago. This made me happy.
- rmoriz 14y agoJeff is so 1990ish. Cool hipsters do Erlang and Go nowadays!
- Ygg2 14y agoFuture proofed hipsters write in assembly and machine nowadays ;) Also don't forget Haskell.
- DanWaterworth 14y agoHaskell is also rapidly becoming uncool. The cool kids use Coq, Agda or Idris.
- bjterry 14y agoHilariously, there actually is an Agda web framework in development[1], although it seems like more of a research project than a serious effort. If there were a web framework in Coq, that would really be something. Idris is intended to be more general purpose, so hopefully one will be written someday. For those not in the know, these are programming languages used mostly for developing mathematical proofs. They are all dependently-typed languages, which means that a type can depend on the values it contains. For example, you can constrain a function to only accept lists of a given length in a way that can be type-checked. 1: https://github.com/larrytheliquid/Lemmachine https://github.com/larrytheliquid/Lemmachine
- DanWaterworth 14y agoThe vector type is always given as an example, but I find the ability to give a type to printf more mind bending. Just in case that went over your head and to reiterate, that means that: printf "Hello %s" 4 would generate a type error, so would: printf "Hello %s" "wor" "ld!" and: printf "Hello %s! %s" "world" but: printf "%s %s!" "Hello" "world" wouldn't.
- jzelinskie 14y ago...I guess I'll have to stop writing concurrent code now.
- johnx123-up 14y agoNode.js traction is true. As far as I know, Scala newbies are coming back to Java. With Play! and Scooter, Java is more Ruby than Scala. With native compile support Crystal https://github.com/manastech/crystal https://github.com/manastech/crystal may soon get all Ruby crowd again.
- trailfox 14y ago> As far as I know, Scala newbies are coming back to Java. With Play! and Scooter, Java is more Ruby than Scala. From what I've seen it's been a one-way street from Java -> Scala. I've yet to meet anyone who wants to go back to Java after Scala. Play! is written in Scala by the way...
- johnx123-up 14y ago> From what I've seen it's been a one-way street from Java -> Scala. Those users may be core Java developers who don't use any frameworks. If you ask me, Scooter is quite is easy to port any Ruby code easily than any other Scala frameworks out there. Scala adoption is killing Play community (2 times it got forked due to the difference) and that's why they now market it for both Scala and Play. As someone mentioned in Play forum long time ago, Scala is not suitable for team due to its readability. Heck I myself (and our team) used Scala and moved back to Java Play.
- trailfox 14y agoInteresting. We find Scala to be more readable than Java. I guess it depends on the type/style of Scala you write. You definitely need be mindful of readability when writing Scala code (code reviews etc. help to ensure readable code). We use Play because it works well with Scala.
- thomasfl 14y agoIt's still a long way to go before big enterprisy corporations boring business applications is beeing written in Ruby. As a consultant it's still either Java or .net out there. JavaScript is slowly beeing accepted (you can't avoid it). For hackers Ruby isn't cool, but for consultants Ruby is more than cool enough.
- parnas 14y agoYou're seriously happy with all the ,(function(){}){}); verbiage?
- NuZZ 14y agoThat pseudo code in CoffeeScript is essentially "do ->", in respect to being happy with node.js and syntax. CS is getting to be rather popular and when it comes to open source projects, anyone who understands JS pretty much gets CS, especially if they're familiar with Python/Ruby.
- borlak 14y agoRuby isn't cool anymore? Are startups cool? I think we'd all agree startups are pretty cool. Going through the HN job postings, my findings are: Ruby with 6.5 jobs Python with 4 Java and ObjC each with 2 Node.js and CoffeScript each with 1 Sorry for not sourcing anything, I don't want a massive post. Seems Ruby is still pretty cool. Anyway, this is quite the normal distribution here from my experience. And in the interest of full disclosure -- I am not a Ruby developer.
- RyanZAG 14y agoCurious as to why Java didn't feature in the choices - considering just how similar Java is to .Net yet having none of the licensing issues and a huge (the biggest?) set of freely available high quality libraries...
- derefr 14y ago> If you want to build truly viable open source software, you need people to contribute to your project[...] I think it would somehow be very hard to get people excited about contributing to the effort to build a new, amazing piece of forum software... in Java. Clojure, maybe ;)
- moondowner 14y agoJava is at the 3rd place on GitHub on Top Languages (sharing it with Python), which proves that there's collaboration going on in Java projects https://github.com/languages https://github.com/languages
- tszming 14y agoA lot of Java projects on Github are Android related. On server-side, you have a lot of alternatives you can choose from, but on Android, most of the time, you don't have the choice.
- moondowner 14y agoThere are also non-Android related Java projects there, for example from the guys from Netflix, SpringSource, LinkedIn, Twitter, etc... but I think that you're right, a lot of Java projects are Android related.
- tszming 14y agoAn interesting phenomenon is a lot of Java projects on Github if they are not Android related, very likely they are from big guys like Twitter, Netflix, LinkedIn, Yammer etc. Definitely they all have the reasons (e.g. performance, static typing) to use Java or JVM technologies, but if you count the number of projects from indie developers, Ruby, JavaScript & Python are much popular - and they are the target audience of Discourse. Java is still the No.1 language but it is unhealthy (IMO) if most indie developers prefer to ignore it, despite the benefits it bring.
- Xion 14y agoAs a member of Python community, I hereby congratulate Ruby for joining the ranks of pretty-cool-but-not-so-hot-anymore technologies. There are years of Getting Stuff Done ahead of you. Way to go!
- shanelja 14y agoI wonder how you fall in to these categories, for instance, Ruby and PHP were developed around the same time (though Rails obviously came later) yet Ruby is such a "cooler language" so it can't be due simply to age. I think a lot of it is Silicone Valley's attitude to being different to the rest of the world, the majority of sites are built in PHP? Sweet, let's go with something funky and different! It's a great attitude to have for creating cool new things, I suppose, but it feels like it's moving too fast for me to keep up, is Node.js not cool anymore? What about Backbone? Lua? what the hell is Hadoop? How about a new Lisp?
- doktrin 14y agoI don't think it's "just" SV. On the whole, IME, Ruby (and Rails by immediate extension) appears to be a little more popular in the US than in Europe. I can't speak to other developer communities. For instance, I was immediately struck upon visiting family in Norway that vanishingly few shops use Ruby, and surprisingly many use .NET. I had also just finished interviewing for an opportunity on mainland Europe for a shop that uses Perl as its production language.
- arkitaip 14y agoThere's also the question of population and total market size...
- vidarh 14y agoNorways tech sector is small enough that it is severely dominated by entrenched interests with a Microsoft background, much more so than in larger countries. The places that tends to use Ruby tends to at least have started doing so when small, and the number of startups in Norway is vanishingly small simply because we're a small country. (I'm from Oslo, but moved one of the startups I co-founded to London 13 years ago...)
- donebizkit 14y agonode.js is great when building rich client applications. At the end of the day you only need your back-end to grab and serve data as fast as possible and you delegate all the parsing to the browser.
- Offler 14y ago(However, It's also worth mentioning that Discourse is, if anything, even more of a JavaScript project than a Ruby on Rails project. So why not Node.js? Presumably it's down to maturity.
- edu 14y agoHe addressed it: Ruby isn't cool any more. Yeah, you heard me. It's not cool to write Ruby code any more. All the cool people moved on to slinging Scala and Node.js years ago. Our project isn't cool, it's just a bunch of boring old Ruby code. Personally, I'm thrilled that Ruby is now mature enough that the community no longer needs to bother with the pretense of being the coolest kid on the block. That means the rest of us who just like to Get Shit Done can roll up our sleeves and focus on the mission of building stuff with our peers rather than frantically running around trying to suss out the next shiny thing. (edit: formatting)
- k__ 14y agoThis is just a rant and not a reason. "Hurr I said it's old school, so I use it. Now node.js is cool, so we can do our thang and no kiddies getting in the way" I mean, wth?! This whole post could be written with ruby changed to python and node.js changed to go or something. Seems like there is no "real" reason to use ruby at all, he just likes it but can't simply admit it...
- edu 14y agoIt's his reason for his decision. I don't see any problem with it, he prefers a more mature language/ecosystem (i.e. not cool) so they focus on GTD not trying to be the coolest guys around. He has a longer post on that topic: http://www.codinghorror.com/blog/2008/01/the-magpie-developer.html http://www.codinghorror.com/blog/2008/01/the-magpie-develope... As he also noted: There's always more than one way to do it, and just because I chose one particular way doesn't make it the right way – or even a particularly good way. I guess you've other metrics to decide what tools to use, and that's great :)
- spoiler 14y ago
- Swizec 14y agoPfft, some of us moved to node.js straight from Python and skipped the whole Ruby thing.
- spoiler 14y agoAlthough I love node.js, but you are missing out on not using Ruby. I used both Ruby (eventmachine) and node.js on a recent project and it was a total awesomegasm. I admit that the Ruby side had some Ruby code converted to C for performance reasons (parsing binary blobs), but we are not rubysts because performance is the only thing we care about. I find Ruby incredibly sexy, be it still cool or not.
- Swizec 14y agoYeah I actually did start working on a Rails project a month or so ago. Ruby is okay. I like how extremely easy it is to pick up. I don't like that this probably leads to similar problems the PHP ecosystem developed eventually.
- robotmay 14y agoOn the concurrency side of Ruby I've been really enjoying Celluloid recently. Still trying to come up with a project to hack on with it.
- MrBra 14y agoOk, now you are ready for ruby
- kayoone 14y agoIsnt discourse mostly an EmberJS app with a rails REST backend? Seems like the big frameworks are slowly loosing relevance as more development moves client-side.
- systems 14y agoOff Topic: What is that editor in the screenshot?
- RobSis 14y agoTurbo Pascal 7.0
- ygra 14y ago6 at most. 7 had syntax highlighting.
- deleted 14y ago[deleted]
- willvarfar 14y agoTurbo Pascal! > Anders is the only one of them who built Turbo Pascal and Delphi http://prog21.dadgum.com/116.html http://prog21.dadgum.com/116.html http://williamedwardscoder.tumblr.com/post/32659364988/turbo-pascal-was-smaller-than-c http://williamedwardscoder.tumblr.com/post/32659364988/turbo... Since I'm leaving links to my blog, here's another relevant one: http://williamedwardscoder.tumblr.com/post/43394068341/rubys-principle-of-too-much-power http://williamedwardscoder.tumblr.com/post/43394068341/rubys...
- dugmartin 14y agoI ran across my Turbo Pascal 3.0 disk in my pile of computer history in my attic the other day. It saved me a lot of time in college - everyone else had to submit their code to the mainframe's compiler which had no error correction and dumped reams of errors on a single syntax error.
- pjmlp 14y agoTurbo Pascal, one of the best Pascal dialects with fast compilation times, modules and everything you need for doing systems programming. The IDE was also quite good for the time. It was my favorite programming language until I was forced into C and C++ land. Nowadays I am just another polyglot developer, but the Pascal family of languages has a special place on my heart. I think the software would be safer would one language of that family be the default systems language for mainstream operating systems.
- devniel 14y agoI have just started to learn Python and Django after read a lot of questions about "Ruby/Rails vs Python/Django". I worked with Node.js since 2011 and with Play last year.
- AndreasFrom 14y agoPlay with Java or Scala? What did you think about it?
- devniel 14y agoWith Java. IMHO Play framework make more agile the web development with Java, I think that it's similar to Rails. I had some problems with its Ebean ORM and MySQL, also the scala templates have some limitations (e.g. I couldn't declare a variable). I chose Play because in my college all knows Java, and at that moment Play was the better framework for web development with Java. It's my project with Play Framework 2 : http://www.youtube.com/watch?v=i5Uf3N1rgWc http://www.youtube.com/watch?v=i5Uf3N1rgWc and I'm going to still work with Play sometimes.
- lloeki 14y ago> you really need to throw fast hardware at it for good performance. That's where — non syntetic benchmark, anecdotal real-world use — Python rips Ruby apart. I cringe every time I wait for "bundle exec {rails console|rails server|rake|cap}". At every point in development, tests and production, ruby execution feels sluggish. Our routine Python dance on my 4 years old Core 2 Duo laptop runs circles around our Ruby stuff on my desktop i7-2400. 2.0 brought Ruby into decent land, but there's so much more to do. Future developments look interesting but I fear about the performance impact of new features (such as refinements). I'm definitely keeping an eye on Topaz.
- vidarh 14y agoTopaz won't help for the case you describe. The big problem with bundle exec (or Ruby startup times in general), is the ludicrous amount filesystem access because of searching through a ridiculous large number of files for each "require". E.g. if you have a ton of gem's installed, most "require" calls will look for the files you require relative to the root of every gem.... Much more extensive use of require_relative, and fewer search paths can fix that entirely. Try an "strace 2>&1 -e last64,stat64,lstat,stat bundle exec [yourcommand] | less" and be prepared to be shocked at the waste. (EDIT: This of course assumes you have strace; on most Linux distro's that's just a package install away - I don't know about OS X, and I've got no idea how to make dtrace do the same)
- sams99 14y agorequire is way way faster in Ruby 2.0 typically bundle exec rails c will drop from 8 seconds to 4 just by upgrading the vm. optimising this is not an impossible problem its just going to take time, its far from a trivial one.
- vidarh 14y agoIt is fairly trivial if you're willing to acknowledge the real problem: You can't pretend to not know about paths. You can make the current case faster by optimizing this and that, but it boils down to reducing the number of stat calls, and the ways to do that are: - Minimize the number of paths in the $LOAD_PATH. Ideally there should be one path there, but that might not be practical. - require_relative everything when you know where it is. As a bonus you get substantial less risk of breakage because of accidental filename clashes (yes, I've had filename clashes happen several times). Now, this isn't quick, because it'd mean making people used to require 'gem-name/file' and have gem/bundle ensure that the default load path contains a symlink to the real current include path for every gem, but this doesn't even need a single interpreter change. The problem here is not the Ruby implementations, but the gem ecosystem: This only becomes difficult if one wants the interpreter to automagically find files you've dropped all over the filesystem.
- rurounijones 14y ago> Ruby is a decent performer, but you really need to throw fast hardware at it for good performance. Everytime a performance thing comes up I still think "Try JRuby if it is that much of a problem" Of course there are downsides but the code itself is not one of them. Most apps will run on JRuby without trouble without any conversion work. The biggest obstacle I think is the switch from things like passenger / unicorn to totally unfamiliar servers like trinidad or torquebox (and the inevitable breakdown of jruby to java abstractions when you want to try advanced stuff and you have to learn java'isms like JMX etc.) It didn't actually occur too strongly in this case but if ever I see a blog post about "Ruby didn't perform well enough" and they DIDN'T give jruby a try then my forehead gets a slapping. JRuby - The forgotten option between more hardware and switching to a different language. [Edit] Actually I should clarify, I have not yet compared ruby2 vs jruby and the applications I write tend to be very multi-threaded which plays into jruby's hands.
- bad_user 14y agoJRuby is really cool, however whenever I tried using it, well it was painful. It's not JRuby's fault as the devs did a phenomenal job on making it a first-class Ruby implementation, but you always have issues with its startup time added on top of the already awful startup time of Bundler/Rails, or with incompatibilities with libraries, or with libraries behaving differently or being incomplete on top JRuby versus Ruby MRI, or with instances in which you have to mix Maven or Jars with Bundler / RubyGems and so on. In the end, for new projects if you want to use the JVM, it's way better to use a language that was grown on top of the JVM. Like Scala or Clojure, or maybe even Java 8 when it comes out. Which is exactly what I personally did, being tired of the limitations that the reference Python/Ruby interpreters have.
- rurounijones 14y agoI actually know of a few people who use MRI on their local machines and JRuby on the servers. Not ideal but one option. Regarding mixing jars / maven and bundler. Well to be honest I have never been in that position w.r.t maven but including jars in a project has never really been a problem for me. (Plus on MRI those jars wouldn't have been available in the first place!)
- deleted 14y ago[deleted]
- dave_sid 14y agoI think there's too much talk about which language is the best, which framework is the best, .NET vs node.js vs ember vs Java. Okay I get the issues with licensing for .NET but in terms of functionality, most languages and frameworks that developers are using are stunningly good. We're lucky so have so many and most of this stuff doesn't cost a penny. I think people should get less caught up in what tools they are using and focus on making a decent application. A great application could be made from any language mentioned here and so can bad application. I like the comment about Ruby not being cool now. Too many developers get caught up chasing the latest language and framework, continuously climbing the learning curve of the latest offering.
- _pmf_ 14y ago> There are maybe fifty world class computer language designers on the planet. Anders is the only one of them who built Turbo Pascal and Delphi. The Pascal _syntax_ was designed by Niklaus Wirth. > It is thanks to Anders' expert guidance that .NET started out such a remarkably well designed language .NET is not a language.
- octo_t 14y agosyntax is not the only thing behind language design. at all. the semantics of a language are equally (if not more) important. you also need to recognise the importance of a good compiler, one which gives good error messages and optimises your code.
- jablan 14y agoTurboPascal departed a lot from standard Pascal syntax, especially in very popular versions 5.5 and 6. IIRC, standard Pascal didn't even support modularity (importing symbols from other files). Pascal was mostly academia language, suitable for learning imperative programming (Wirth later designed Modula-2, which was capable for industry). TP 5.5 introduced OO, pretty much what we see as Java-style mainstream these days. Also, the IDE itself was incredibly nice to work with. Not to mention Delphi.
- pjmlp 14y agoActually the syntax comes from Algol, but Wirth was also part of the design team.
- nollidge 14y ago> .NET is not a language. It may as well be. VB.net and C# are the only .NET languages that have any traction, and the differences between them are almost entirely superficial. Off the top of my head, the only significant difference is that VB.net supports inline XML.
- fakeer 14y agoNot again Ruby. Please. PG needs to put in a filter over there, just like he deleted Adria's firing posts yesterday. Though the contexts are different. >>that .NET started out such a remarkably well designed language – literally what Java should have been on every conceivable level I am glad Java didn't turn out to be that way. >>Argentina, or Nepal, or Bulgaria Why has he mentioned all of them in one line/context? I don't see them at a similar level either in education, wealth/poverty or so.
- tuzemec 14y agoBeing from Bulgaria: .net is widely used over here. Most of the companies that I've worked for do relay heavily on MS stuff.
- trailfox 14y ago> Ruby isn't cool any more. Yeah, you heard me. It's not cool to write Ruby code any more. All the cool people moved on to slinging Scala and Node.js years ago.
- MrBra 14y agoThis part seems to have given peace of mind to so many ruby avoiding people. Now you can finally discover ruby. You'll finally find out it's cool :)
- smoyer 14y ago"Ruby is maturing up nicely" ... They've certainly learned about security recently and the response to the incidents was reasonably "enterprisey".
- rimantas 14y agoRuby != Ruby on Rails
- smoyer 14y agoI wasn't aware that the rubygems.org exploit was limited to libraries that are used in RoR. As an aside, I'm not quite sure why I'm being down-voted since I meant the original comment as a compliment. Shutting down the package site and quickly cleaning up the vulnerabilities are (IMHO) a sign of a more mature platform. I guess the first rule about Ruby is that you can't talk about Ruby (unless you're one of the chosen few).
- deleted 14y ago[deleted]
- mathnode 14y agoWhy not mono? For not using .Net I can understand the his detailed reasons, Java because it's a grumpy old man, Haskell because it's a paradigm shift etc...
- trailfox 14y ago> Why not mono? Surely you jest?
- voidlogic 14y agoI wouldn't use it, but I know people have had great success with Mono + .NET MVC + nHibernate/PostgreSQL on Linux. Now I personally would rather use Go/Java/Haskell, but I would take the above stack over Ruby any day.
- jablan 14y agoHe is obviously concerned about adoption of the project by wider circle of potential contributors. Most of the C#/.NET developers are already working in, well, C# and .NET, usually in enterprisey environments and often with little or no contact with open-source community. Also (and this is purely my own subjective view, of someone who worked 5+ years almost exclusively with .NET, before switching completely to OSS stack and Ruby) Mono feels like a second-class platform, orbiting around .NET. I personally wouldn't like to work in Mono as it feels a bit like betraying both realms, OSS and MS, regardless of how good the platform itself and the tools are. And I believe that at least VS can't be replaced that easily with OSS alternatives.
- desas 14y agoThat's addressed in his third point, the ecosystem isn't as good as other options.
- sigzero 14y agoUse it if you like it and be done with it.
- yock 14y agoNow is a fantastic time to get into Ruby, in my opinion, whatever your background is. As someone who starts his first Ruby gig on Monday, this puts a smile on my face.
- heidar 14y agoGood luck! I can't wait to be in the same boat. :)
- j_col 14y ago> Of course, we went on to build Stack Overflow in Microsoft .NET. That's a big reason it's still as fast as it is. Wow, that claim could really do with some qualifying.
- CodeCube 14y agoTheir architecture has been pretty well documented, and can and has handled a good amount of traffic with relatively small resources - http://highscalability.com/blog/2009/8/5/stack-overflow-architecture.html http://highscalability.com/blog/2009/8/5/stack-overflow-arch...
- voidlogic 14y agoWithout evidence to the contrary that claim seems reasonable: http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?test=all&lang=csharp&lang2=yarv http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?t... We all know CPU performance is much less important than IO performance (file, DB, network), but assuming a large Ruby site and large .NET site both got that part right, and CPU performance does start to matter, what he says sounds reasonable. Rather than being noticeably faster (lower latency) for a single user, the compiled tier (Java,C#,Go,Haskell,Scala,etc)'s better performance often just allows for far fewer (or cheaper) servers than the interpreted tier (PHP,Perl,Ruby,Python) to be thrown at the problem.
- j_col 14y agoJust to elaborate further on why I think this is a throwaway comment from Atwood rather than getting into the whole "one language is faster than another" dick-measuring competition: "Fast" in the context of the Internet is incredibly subjective (especially when you factor in global network latency), and has no place in technical discussion unless backed up with benchmarks (and even then, to be taken with a pinch of salt). For example, think about these made-up statements: 1. "Our site is really fast." 2. "That site is faster than the other site." 3. "We made our site 10% faster." 4. "We build our site using language X because it's fast." I'm sorry, but statements like that raise my bullshit firewall. It's bordering on marketing speak.
- mmahemoff 14y agoJeff is really comparing the wrong things here. Whether Ruby, Python, or even ASP.net, it's all asking for Discourse to be a niche product only used sparingly by enthusiasts and in the enterprise. Which was maybe the goal, but I don't think so. The obvious choice IMO was to suck it up and live with PHP. Nowhere near as nice as the other options, but exponentially less friction for people to set up on a LAMP stack. I'm not going to all-out defend PHP, but it's not as bad as it used to be; and you don't have to use it as much as you used to, given that Discourse is heavily a client-side JavaScript app anyway.
- dpritchett 14y agoJeff claims that they want to make the Ruby install story as easy as PHP's (e.g. download and unzip into a directory accessible via mod_php). I'd love to see that happen but it strikes me as a bit of a risk to their business. I guess Jeff is independently wealthy already, though his team may not be.
- jmcqk6 14y agoThe thing is that ruby is actually easier to install than php - on your own computer. Having a rails hosting environment as ubiquitous as php is a completely different story. I don't see how any single person would be able to do that.
- deleted 14y ago[deleted]
- floydpink 14y agoGood read. Makes me want to learn Ruby! One query though: All that talk about the shiny new hardware and Ruby being slower in rendering pages under 50ms and the comparison to StackOverflow; isn't that a little unfair? I am trying to understand better and not making claims of knowing better than Jeff. :) How can you compare a completely server side solution (in ASP.NET MVC) to an almost completely client side solution (in Ember.js), which only uses the Rails API for the backend alone and say .NET is superior to Ruby? Especially when the page rendering time seems to be the only profiled checkpoint for the performance. Wouldn't JavaScript and the whole Ember.js be adding to the slowness at all?
- danabramov 14y agoI'm sure he talks about server response times.
- EvilTrout 14y agoHe's talking purely server times here. And it shouldn't be pages so much as "JSON Blobs" :)
- floydpink 14y agoAh, ok. Makes sense now. Got caught up a little too much on "page" :)
- deleted 14y ago[deleted]
- michaelwww 14y agoIt's nice to see Anders Hejlsberg getting some love. Truely one of the greats.
- Mahn 14y agoI'd also be lying if I didn't mention that I truly believe the sort of project we are building in Discourse does represent most future software. You know, it's great to believe in what you build and all, but being modest sometimes would be nice.
- ben336 14y agoI think he's referencing the "built on an open source language" model, not saying that everybody will be emulating discourse. Its not immodest to say that you're switching to something that you believe is the future. Its not like he's claiming that he invented "open source languages" or was the first to claim that as the future of programming.
- d23 14y ago> I'd also be lying if I didn't mention that I truly believe the sort of project we are building He qualified it pretty well. It could have been: > Discourse represents the future of software. Wouldn't that have been more arrogant?
- pjungwir 14y agoTo return the compliment, as a now-mostly-Ruby programmer with experience on most of the other open source stacks, when I built a C# desktop app a few years ago, I fell in love with the language. The APIs for Collections and IO aren't as clean as Java's, but the language is great. In many ways it felt like I was still in Ruby. I'm super-impressed how Microsoft was able to out-innovate Sun, since starting with basically a Java clone. If you haven't ever tried C#, I encourage you to whip up a quick desktop utility and give it a try.
- sourc3 14y agoI have developed with C# since it was in beta. I absolutely love the language. Prior to that I had done extensive C++ and some Java. Last year I gave Ruby a try (for an ambitious project) and I have to say that it felt like going back in time to my C++ days. The syntax is very, very different and the environment support (command line + sublime) is clearly not something that I have done in the past 10 years. I like the flexibility of it but coming from statically typed languages I find myself trying to replicate the same way of thinking in Ruby. Which in turn is making me less productive. Given the mental blockage and fear of productivity loss I am not certain I can push through to get to the point of productivity with RoR. I am giving Python a try next! I would also appreciate any pointers to get me up to speed w/ Python frameworks for web development. PS: The rails part is just fine, I have developed an Active Record based framework to do web development on C# in 2003. So I am more specifically talking about Ruby the language.
- papsosouid 14y agoThe popularity of the idea that a language becomes "mature" when it is no longer the popular fad makes me sad. Ruby was already a mature language before it become a fad. Evaluate the language, don't avoid a language just because it is trendy, and then jump on it after the bandwagon has moved on.
- prezjordan 14y agoSarcasm aside, what are some benefits of .NET? I've only briefly used it, and I hated the whole experience (probably because I really don't like Visual Studio). I want to keep an open mind though, what am I missing out on?
- tarr11 14y agoMost .NET devs (myself included) really enjoy the Visual Studio Environment. So, if you prefer a text editor like vim, it may not be the right tool for you. The debugger is hard to beat (as Jeff mentions). C# has kept up with most features (LINQ, dynamic, async/await, etc) that are available in Ruby, and the CLR is quite fast. The core libs are also very solid. ASP.NET MVC is very comparable to Rails. There are a bunch of downsides as well, but they are well-covered by OP.
- adandy 14y agoDon't open your mind too far; having an opinion is not always a terrible thing. You already said you don't like a large chunk of the typical tooling, no comment will make you like it. I like using Visual Studio even if it is not the most pragmatic choice, especially for open source. I am not a robot and I doubt you are either. > what am I missing out on? I'm not really sure what you know but the answer may be nothing. I have been playing around with code contracts and expression trees a lot recently, I think that stuff is neat. The thing is though that most other languages & frameworks have this stuff too.
- jongalloway2 14y agoI'm happy you did something different, even though your reasons are of course all wrong. I do wish it had been Node and not Ruby - JavaScript fits most of your reasons for going with an open source stack a lot better than Ruby does. Why not Node was the post I was hoping to read. But back to why you're wrong on the internet: 1. .NET licensing isn't complicated, SQL Server is. There's an easy fix for that. 2. I don't think StackOverflow really participates in the best that the .NET open source world has to offer. From the information I can read, you (and team) published a lot of the code you wrote under open source licenses, but as far as I know the StackOverflow stack didn't really interact with many (any?) open source .NET projects that weren't run by StackOverflow - e.g. writing MiniProfiler instead of working with Glimpse, working with Mono, etc. 3. There's a lot that's changed in the .NET web space in the past year as they've moved from just releasing the code (see 2 above) to accepting pull requests. This has resulted in a good amount of accepted pull requests - community contributed features which ship "in the box" and are officially supported by Microsoft. Sometimes that's lines of code, but more often it's integration of popular community libraries. If anything, that trend is accelerating. (also posted on blog comments, but nobody reads those) Coding Horror Fan, Jon
- phillmv 14y agoDid you read the post at all? >Ruby isn't cool any more. Yeah, you heard me. It's not cool to write Ruby code any more. All the cool people moved on to slinging Scala and Node.js years ago. Our project isn't cool, it's just a bunch of boring old Ruby code. Personally, I'm thrilled that Ruby is now mature enough that the community no longer needs to bother with the pretense of being the coolest kid on the block.
- jongalloway2 14y agoOf course. Did you read my comment at all? Two can play this game.
- phillmv 14y agoActually, I think I did suffer from some reading miscomprehension. I apologize for the inconvenience, tho I do disagree with your base premise. Regards,
- eric970 14y agoNo matter what language or VM you choose, there are going to be tradeoffs. A good engineer understands these tradeoffs well and makes opinionated decisions with all the knowledge he or she has. All the "my language is better than yours!" bashing is a result of being stubbornly opinionated and not willing to look at things from another perspective. There are always things that one VM will shine with where another will fall flat at, at vice versa. Also, I don't think Ruby is nearly as bad as most people think. It's not as monolithically slow and vulnerable to exploitation as some people on HN claim. The VM is decent, and there are ways to tune the performance up that make it even "good". See, there's a tradeoff. The language is, IMO, fantastic, but you're going to take a performance hit for that that you need to deal with in some way or another. You're trading execution speed for "developer happiness", whatever that means anymore.
- ameen 14y agoAs someone who is trying to wean himself off of .NET I'd say Ruby isn't exactly the best choice out there. I could jump over to any JVM language (even hip ones) or convert into a Pythonista. Ruby is hardly efficient and with better(and efficient) alternatives out there I wonder why do people still flock to Ruby/Rails.
- fijal 14y agoGeez, this post is full of complete nonsense and FUD when it comes to programming languages and their performance characteristics. I won't comment about the language design (I kind of like C#, but it's beyond the point), but the facts: * C#, and specifically microsoft implementation of it is absolutely horrible. The AOT part is ok, but the JIT is incredibly dumb. There are good reasons why it is the way it is, but it's ridiculously slow compared to Java (and yes, you're legally obliged not to do this comparison) * MRIs Ruby GC collector until 2.0 had bugs which prevented it from having good performance, even asymptotically. To be honest, CPython had it until 2.6 too. That means that if you allocate objects rapidly you can end up in a O(n2) situation where each n allocated objects end up taking more and more time. * Ruby and MRI in particular is nowhere near good performance. But you can throw more hardware on the problem always. * I would like to see some data about "StackOverflow is fast because it's on .NET", it definitely does not fit with my view of how fast/slow libraries/VMs perform. To be honest, language speed often does not matter. Java has pretty decent VMs, like hotspot and yet a lot of Java code is horribly slow, because libraries are badly written (think eclipse). Also I'm personally terrified with ruby's security stories recently (and yes, it's both ruby and rails at fault)
- kvb 14y agoFor a post accusing another of FUD, it would help if you got more of your own details right: C# doesn't have an AOT or JIT compiler - all compilers that I'm aware of always compile it to IL. You're right that the .NET JIT has historically focused on startup speed rather than pure speed, but there are many factors that affect performance (e.g. C#'s defaulting methods to non-virtul may mitigate the lack of hotspot-like optimization; value types and the resulting lack of boxing/unboxing may likewise have a positive impact; ditto for reified generics). What in particular strikes you as "horrible" about Microsoft's implementation?
- fijal 14y agoWe did quite a lot of benchmarks about various programs (like Python interpreter written in RPython compiled to C#) and the performance was pretty bad. There were various issues, some avoidable some unavoidable, like Exceptions being very very slow (and being essentially for free on Java). I don't think it's possible to summarize it without writing a small novel and I don't care enough, but the JIT is as far as I know a direct IL-to-ASM compiler with very little optimizations or not at all. This puts a serious ceiling on what can be fast and what cannot be fast. In particular the escape analysis is either non-existant or very weak. The AOT part is exactly C# -> IL and then it's later compiled to assembler.
- tenpoundhammer 14y agoI just started using scala on the job and have never been more confused in my life. I wish I was getting stuff done instead.
- lucian303 14y agoThe Delphi reference made me shudder.
- Paul_D_Santana 14y agoAlright, this post convinced me! I'm going to start learning this weekend! I did some searching around and found these classes: https://www.udacity.com/course/cs253 https://www.udacity.com/course/cs253 http://www.codeschool.com/paths/ruby http://www.codeschool.com/paths/ruby http://ureddit.com/class/40250/web-programming-with-ruby-on-rails http://ureddit.com/class/40250/web-programming-with-ruby-on-... My goal is to learn web development, preferably Ruby but I'll make an exception for the Udacity course because I like Udacity. Of the above courses, which one would you recommend and why? Or is there a better one? I am a C# and ASP.NET developer.
- ksec 14y agoI still dont get the drift about Ruby being fast enough. Ruby is slower then CPython, PyPy, Lua, LuaJit, and literally majority of other popular dynamic scripting languages. The argument that keeps being throwing up is that It is fast enough for most ( actually only for Rails related ) things and is mostly limited by SQL, but that is like saying my Toyota Prius is fast enough since the high way speed is limited anyway. I meant most of the complain aren't really about Ruby getting LuaJit speed ( is that even possible? ) or JS V8 engine. Just at least it is on par with Python ( not talking about PyPy either )
- martinced 14y ago"I'm not inclined to make grand pronouncements about the future of software, but if anything kills off commercial software, let me tell you, it won't be open source software. They needn't bother. Commercial software will gleefully strangle itself to death on its own licensing terms." If there was no open-source alternative companies like MS could have continued for ever and ever with ever more convoluted licensing terms and people wouldn't have had the choice...
- chris123 14y ago"Why Python", anybody?