Hacker News new | past | comments | ask | show | jobs | submit login
What I wish a Ruby programmer had told me one year ago.. (sirupsen.dk)
63 points by Sirupsen on April 28, 2010 | hide | past | favorite | 62 comments



> After a few days playing around with Python, I felt okay with it. I didn’t love Python,

Probably should try longer than a few days, but this is the best/only metric for personal programming language (business/group programming may impose other metrics).

If you don't love the language you're programming with, you should find another.


> If you don't love the language you're programming with, you should find another.

It's the other way around. If you love a language, you are probably unaware of its flaws or of other languages (It's like the stupidity-confidence correlation). This is one of the reasons fanboys make me want to puke.


Well, if you love a language enough, you'll eventually be dragged through all of its weak areas and get real perspective.

The important thing is just to keep quiet during the "best thing EVER!!!" phase. The reason fanboys are so annoying is the combination of enthusiasm and relatively shallow knowledge.


> Well, if you love a language enough, you'll eventually be dragged through all of its weak areas and get real perspective.

You'll be dragged, but you won't get any perspective if you know only that language.


Oh, absolutely, but switching languages every weekend isn't going to get you deep perspective either. It's probably best to focus on just a couple languages, but languages that are sufficiently different from each other that they expose you a wide variety of techniques.


So you should stick with a language you sorta like? Wouldn't that lead to less mastery of the language and the same result (unawareness of its flaws)?


It's kind of disappointing to see the hate some HN readers express toward non mainstream Linux distros like Arch. As some readers have pointed out this sort of Linux distros are not for everyone. We can use whatever OS we like for whatever reasons we choose and there is no reason to get angry or offensive about it.

P.S. I use OpenBSD.


"Error establishing a database connection"? That's deep wisdom indeed...


No idea what happened, trying to fix it currently.


Yes, Ruby doesn't scale.


The blog is powered by Wordpress. :D


http://webcache.googleusercontent.com/search?q=cache:http://...

The post in Google's cache, while the site is down.


Breaking out of a programming paradigm is difficult, but one of the most liberating things that you can do. Now when you go back to working on PHP projects you can approach it with different methods. The roughest time I had breaking my paradigm was when I learned a little Lisp...


If found working in a ML language like Haskell or F# puts a really tight straight-jacket on code style, and is wonderful at forcing you to adopt a new paradigm.

When you go back to coding in other languages, you approach the same problems in different ways because you were forced to solve them in a strongly typed functional manner.


Yeah, and after you're comfortable with ML or Haskell, try Prolog. Unification+backtracking is like pattern matching cranked to 12. As a bonus, a lot of the corners of Erlang will suddenly make more sense, and several Prolog implementations come with good libraries for constraint programming.

Also, not to nitpick, but Haskell isn't an ML dialect, and while my experience is with OCaml (not SML or F#), OCaml doesn't force you to do anything in a purely functional manner the way Haskell does - it just makes it an option. (I think this is a good thing, but I guess it's a downside when you're trying to force yourself to try new stuff.)


> And then I recommend something like Arch Linux whenever you feel like you are ready for something more advanced!

What's so great about Arch? Why should I waste my time getting the basic functionality working, like X or audio?


Less magic. Ubuntu is a complex system, and hard for a beginner to learn and customize. However, there's no need to switch while you're happy with Ubuntu.


Agree. I'm a Slackware user because too many times has Ubuntu booted and showed me a dialog box saying "I updated your system and broke everything; have fun fixing it".

If I wanted something that constantly breaks things and then try to get off by looking cute, I'd get a puppy.

EDIT: s/Slackware/& user/


For me, there are three main reasons:

  * Customizability. It's very easy to build a system just the way I want it.  
  * Rolling release. There are no releases every six months, but when a new version of a software is released, I get it after a short testing period.  
  * Package availability. Everything I need is either in the repositories or easily buildable from AUR. (Using simple recipes called PKGBUILDs).
BUT: This is only great, if you know your way around Linux - I can install and configure Arch in less than 2 hours, but my notebook for instance uses the same install for about 2 years now. The good wiki helps to gain this knowledge, but it's still very unfamiliar for most people.


I use Arch but I wouldn't necessarily take the author's advice. If you enjoy tinkering and want to learn more about administering a linux machine, Arch is great.

But if you want things to "just work" then Ubuntu is also great.


I enjoy using Arch because it puts me in total control of what's on the system. Also, X and audio really take just a few minutes to set up.


To learn.


> To learn.

Learn what? How to get the basic functionality working? So that when when you are installing Arch, you would know how to do it? Sounds perfectly reasonable, I guess.

P.S. I've been using Linux since the '90s. Configured X, etc. a bunch of times. You know what I've learned? That it's stupid when the computer can't do it for you. Not all "learning" is created equal.


Learn how Linux works. Configuring X and audio is a part of that. If one is not interested in doing such things, then Arch or any other similar OS would obviously not be the right choice.


> Learn how Linux works.

If that's your goal, you may be better off learning C or Assembly (since you are coming from PHP)


tl;dr: PHP noob discovers Ruby and OOP. Thinks he's now so awesome that people care about his opinion about unrelated topics like Linux distros.


I bet if this post was about python and not ruby (and maybe leave the Arch Linux part, as people didn't seem to like that), there wouldn't be anyone calling him a fanboi.


Nah, attacks happen. It is the internet after all. Post a highly subjective post in favour of anything, and you'll find someone to disagree loudly with you.


Probably. I still have the feeling that it wouldn't get this much bad comments in a python entry.


Yay bad karma!


i think that's a new record. flame war from the first post.


Very sorry about the downtime, wasn't expecting such a rape.


Aaand.. it's up!


Grammer cop says no.

Honestly, your choice of words is distracting. Your server got "raped"? PHP is "evil?"

What, no Nazis?

I'm not sure why this post is getting votes...


Give him a break .. English is not his first language


Honestly though, the "rape" thing was pretty offputting to me. Completely gratuitous and not at all clever.


He may just be translating a common expression from his native language into English and doesn't realize how forceful it sounds. 'You've completely raped that function' is the literal translation of something I would say to someone that rewrote a function in a bad way. It would be considered to be less offensive than something that would translate as "you fucked it up". It's closer to 'you've completely wrecked that function'.


Assuming the .dk domain means he's Danish, I can tell you that there's no common Danish expression that would translate to "rape". We're not Vikings anymore.

More likely that choice of word comes from online first-person shooter games lingo like "Let's rape the opposing team's base".


Was "grammar" intentionally misspelled?


I would assume so. I have a wallpaper with "My Grammer is Gooder" on it. It seems to be one of those memes.


It's a rule - you have to typo when criticizing someone's grammar.



it wasn't... how funny is that!

Maybe I was translating from my native language.


Or maybe you just made an ass out of yourself..


perhaps. But I stand by the assertion that words like "rape" are best left to describing a horrific crime.


This is what I've come to expect from articles about Ruby:

  And of course point them towards Linux:

  “Windows is not the best development platform in the 
  world for Ruby. I recommend you to try out Linux. Start
  with a simple distribution, like Ubuntu. And then I
  recommend something like Arch Linux whenever you feel 
  like you are ready for something more advanced!”
Really? In an article about Ruby you feel the need to point people at your personal pet OS? Pointless.


It's not pointless at all. Trying to develop in Ruby or Rails on Windows in a huge pain in the ass. I know, I did it for a year or so. He could have recommended OS X, but the price is a barrier to entry.


I think the biggest problem is the number of gems with native libraries. I switched to JRuby, and felt a lot less pain. Now if only it had a faster startup...


Btw you can try nailgun to start JRuby's JVM once. See your $jruby/tool/nailgun/


I looked into it and it's definitely interesting. It's just a pity NetBeans doesn't use it (and given the current situation, probably never will). Anyway, thanks for the tip.


Ubuntu on Virtualbox is my preferred method of trying out new languages without worrying about my Windows install holding me back. I blogged a HOWTO on that back in December.

The improved flash performance of Ubuntu 10.04 will hopefully be enough to keep me out of Windows entirely from here on.


Same here I am also trying Ubuntu 10.04 on virtual box.. though hard time fixing the resolution :) still playing around RoR it's nice!!! I am a java programmer... playing around a bit with PHP, CakePHP stuff... but again and again considering RoR... RoR screencast and community is gr8.. so does the PHP manual... but CakePHP I don't like much... very confusing naming convention and it's not working as expected... Still not able to make up my mind to go for CakePHP vs RoR (each time thinking in terms of Facebook vs Twitter :) )...I know facebook not using CakePHP but still they r using PHP..


Rails development on OS X is so nice if you use things like MacPorts and Passenger. Coupled with TextMate I would not want to Rails dev on anything else.


But "Arch Linux"? Come on. Was that really necessary to push?


I'm sorry if you feel like I point them towards my "pet OS". I should have stated more clearly there are other alternatives, and this only is my opinion.


What does Arch Linux have to do with developing Ruby?


Don't have to wait 6 months and upgrade everything to get slightly newer versions of packages. The packages are pretty direct from upstream instead of being patched and split apart by the distro.


What advantages does Arch Linux have over Ubuntu?



The main one: Packages don't end up 6 (or more) months out of date between updates.

The maybe a advantage (if you agree with the OP)/maybe a disadvantage(if you like me, don't): Much more manual configuration.


Been a while since I used Ubuntu, but you can typically install newer packages from pre-release versions. You're not locked in to the 6 month upgrade cycle.

I think it's a pretty good model. For 90% of the installed software there's really no reason to update packages more than every 6 months.


Read at Dho's link. My primary reason for the switch was that I wanted to learn more about Linux.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: