Domain: ruby-lang.org
Stories and comments across the archive that link to ruby-lang.org.
Comments · 349
-
Re: BS
Java is a clutzy, cumbersome, overly verbose language annoying to use, only gained life through marketing and whole bunch of subroutines you could run from Java libraries, pre done algorithms, that if you had to write from scratch, you would scrap Java, the only thing that kept Java going was the Java libraries. Ruby writes much nicer, far more compact code and is far superior to Java, just lacks the massive libraries of pre-done code, which is not that necessary for Ruby because it is faster to code with, https://www.ruby-lang.org/en/ (I put the link in because it was the language I enjoyed the most).
-
Re:Walk away?
Yukihiro Matsumoto: Not removed. Added the CoC himself: https://github.com/ruby/www.ru...
The only controversy I could find was this call for a more comprehensive CoC to be adopted, particularly because the one selected doesn't have any enforcement mechanism: https://bugs.ruby-lang.org/iss...
Elia Schito: Not banned. As a result of a complaint (that was accepted by the maintainer) a Code of Conduct was adopted, although note that it doesn't cover activity outside of official project spaces so the tweets in question would not be an issue with it anyway.
So still no examples of people being forced out due to CoC violations, or any retroactive application of the terms, or application to things said outside of official project spaces.
-
Re:It's obvious he's being railroaded, isn't it?
Obvious? No.
Does the meta narrative have a SJW theme all over it? Maybe.
I'd be willing to bet dollars-to-donuts that Patricia had a huge rule in convincing her father to do a 180 but I think we need more facts to determine that though. Speaking of facts, there are few that rather stand out to me after reading Tiago's perspective. Paraphrasing:
Interestingly enough Linus' daughter, Patricia Torvalds, activist of "Guerilla Feminism, supports the Post-Meritocracy Manifesto which was created by Stupid Juvenile Whiner Coraline Ada Ehmke, the latter who also created the Code of Conduct.
Ruby's CoC is simple and to the point. It is summarized as "Matz is nice and so we are nice," commonly abbreviated as MINASWAN.
But Ruby's simply CoC "wasn't good enough" for Coraline though. After Coraline's attempted hijacking of Ruby's CoC was 100% shot down by Matz
...We have set our Code of Conduct.
https://www.ruby-lang.org/en/c...
I hope it works. We may upgrade it if something happens.
Matz.
... Coraline continued being a shit stirrer. Notice how the community basically told her to "fork off". (Pun intended.)Matz isn't alone. Other have voiced their criticism of her CoC:
Given a choice between only two extremes, I'd far rather have Linus Torvalds telling me I'm an idiot and my code is shit, then exist in an offense-taking culture where various forms of criticism are re-branded as "harassment."
Back in 2013 Stupid Juvenile Whiner Sage Sharp targeted Linus. Failing that, she is now targeting Ted Tso calling him a "rape apologist".
Funny how these people love to play Judge, Juror, and Executioner, all at once without any evidence, and want to their CoC to be inclusive even when they aren't, but I digress.
What do these examples have to do with Linux, Linus, and the CoC ?
Eric Raymond pointed the dangers of meritocracy back in 2015. with his Why Hackers Must Eject the SJWs article. The example he brought up was about djangoconcardiff lying about patch rejection in the django community.
I noticed you have rejected some pull requests to add some good django libraries and that the people submitting those pull requests are POCs (People of Colour).
rosarior shut that down.
The pull request was rejected not the person. Of the people who did not had their patches accepted at least one submitted another pull request and was accepted or are contributors in my other repositories, disproving your basic premise.
There is no need for a code of conduct, there hasn't been a conduct related incident with the repository and nothing about a contributor comes into play when rejecting or accepting a patch (as proved above). An explanation is provided when a patch is rejected, and some have been left open to re-asses in a future time.
I'm not white and please don't make any other assumptions about me, they hold no relevance to the matter at hand.
Now I hate conspiracy theories with a passion but does the "recent" rash of CoC changes seem to be politically driven? Maybe. There SEEMS to be a larger narrative at play.
Regardless, I still think it is too early to tell but this inclusion of meritocracy is definitely something to keep an eye out for in the future.
-
Re:It's obvious he's being railroaded, isn't it?
Obvious? No.
Does the meta narrative have a SJW theme all over it? Maybe.
I'd be willing to bet dollars-to-donuts that Patricia had a huge rule in convincing her father to do a 180 but I think we need more facts to determine that though. Speaking of facts, there are few that rather stand out to me after reading Tiago's perspective. Paraphrasing:
Interestingly enough Linus' daughter, Patricia Torvalds, activist of "Guerilla Feminism, supports the Post-Meritocracy Manifesto which was created by Stupid Juvenile Whiner Coraline Ada Ehmke, the latter who also created the Code of Conduct.
Ruby's CoC is simple and to the point. It is summarized as "Matz is nice and so we are nice," commonly abbreviated as MINASWAN.
But Ruby's simply CoC "wasn't good enough" for Coraline though. After Coraline's attempted hijacking of Ruby's CoC was 100% shot down by Matz
...We have set our Code of Conduct.
https://www.ruby-lang.org/en/c...
I hope it works. We may upgrade it if something happens.
Matz.
... Coraline continued being a shit stirrer. Notice how the community basically told her to "fork off". (Pun intended.)Matz isn't alone. Other have voiced their criticism of her CoC:
Given a choice between only two extremes, I'd far rather have Linus Torvalds telling me I'm an idiot and my code is shit, then exist in an offense-taking culture where various forms of criticism are re-branded as "harassment."
Back in 2013 Stupid Juvenile Whiner Sage Sharp targeted Linus. Failing that, she is now targeting Ted Tso calling him a "rape apologist".
Funny how these people love to play Judge, Juror, and Executioner, all at once without any evidence, and want to their CoC to be inclusive even when they aren't, but I digress.
What do these examples have to do with Linux, Linus, and the CoC ?
Eric Raymond pointed the dangers of meritocracy back in 2015. with his Why Hackers Must Eject the SJWs article. The example he brought up was about djangoconcardiff lying about patch rejection in the django community.
I noticed you have rejected some pull requests to add some good django libraries and that the people submitting those pull requests are POCs (People of Colour).
rosarior shut that down.
The pull request was rejected not the person. Of the people who did not had their patches accepted at least one submitted another pull request and was accepted or are contributors in my other repositories, disproving your basic premise.
There is no need for a code of conduct, there hasn't been a conduct related incident with the repository and nothing about a contributor comes into play when rejecting or accepting a patch (as proved above). An explanation is provided when a patch is rejected, and some have been left open to re-asses in a future time.
I'm not white and please don't make any other assumptions about me, they hold no relevance to the matter at hand.
Now I hate conspiracy theories with a passion but does the "recent" rash of CoC changes seem to be politically driven? Maybe. There SEEMS to be a larger narrative at play.
Regardless, I still think it is too early to tell but this inclusion of meritocracy is definitely something to keep an eye out for in the future.
-
Re:It's obvious he's being railroaded, isn't it?
Obvious? No.
Does the meta narrative have a SJW theme all over it? Maybe.
I'd be willing to bet dollars-to-donuts that Patricia had a huge rule in convincing her father to do a 180 but I think we need more facts to determine that though. Speaking of facts, there are few that rather stand out to me after reading Tiago's perspective. Paraphrasing:
Interestingly enough Linus' daughter, Patricia Torvalds, activist of "Guerilla Feminism, supports the Post-Meritocracy Manifesto which was created by Stupid Juvenile Whiner Coraline Ada Ehmke, the latter who also created the Code of Conduct.
Ruby's CoC is simple and to the point. It is summarized as "Matz is nice and so we are nice," commonly abbreviated as MINASWAN.
But Ruby's simply CoC "wasn't good enough" for Coraline though. After Coraline's attempted hijacking of Ruby's CoC was 100% shot down by Matz
...We have set our Code of Conduct.
https://www.ruby-lang.org/en/c...
I hope it works. We may upgrade it if something happens.
Matz.
... Coraline continued being a shit stirrer. Notice how the community basically told her to "fork off". (Pun intended.)Matz isn't alone. Other have voiced their criticism of her CoC:
Given a choice between only two extremes, I'd far rather have Linus Torvalds telling me I'm an idiot and my code is shit, then exist in an offense-taking culture where various forms of criticism are re-branded as "harassment."
Back in 2013 Stupid Juvenile Whiner Sage Sharp targeted Linus. Failing that, she is now targeting Ted Tso calling him a "rape apologist".
Funny how these people love to play Judge, Juror, and Executioner, all at once without any evidence, and want to their CoC to be inclusive even when they aren't, but I digress.
What do these examples have to do with Linux, Linus, and the CoC ?
Eric Raymond pointed the dangers of meritocracy back in 2015. with his Why Hackers Must Eject the SJWs article. The example he brought up was about djangoconcardiff lying about patch rejection in the django community.
I noticed you have rejected some pull requests to add some good django libraries and that the people submitting those pull requests are POCs (People of Colour).
rosarior shut that down.
The pull request was rejected not the person. Of the people who did not had their patches accepted at least one submitted another pull request and was accepted or are contributors in my other repositories, disproving your basic premise.
There is no need for a code of conduct, there hasn't been a conduct related incident with the repository and nothing about a contributor comes into play when rejecting or accepting a patch (as proved above). An explanation is provided when a patch is rejected, and some have been left open to re-asses in a future time.
I'm not white and please don't make any other assumptions about me, they hold no relevance to the matter at hand.
Now I hate conspiracy theories with a passion but does the "recent" rash of CoC changes seem to be politically driven? Maybe. There SEEMS to be a larger narrative at play.
Regardless, I still think it is too early to tell but this inclusion of meritocracy is definitely something to keep an eye out for in the future.
-
Re:It's obvious he's being railroaded, isn't it?
Obvious? No.
Does the meta narrative have a SJW theme all over it? Maybe.
I'd be willing to bet dollars-to-donuts that Patricia had a huge rule in convincing her father to do a 180 but I think we need more facts to determine that though. Speaking of facts, there are few that rather stand out to me after reading Tiago's perspective. Paraphrasing:
Interestingly enough Linus' daughter, Patricia Torvalds, activist of "Guerilla Feminism, supports the Post-Meritocracy Manifesto which was created by Stupid Juvenile Whiner Coraline Ada Ehmke, the latter who also created the Code of Conduct.
Ruby's CoC is simple and to the point. It is summarized as "Matz is nice and so we are nice," commonly abbreviated as MINASWAN.
But Ruby's simply CoC "wasn't good enough" for Coraline though. After Coraline's attempted hijacking of Ruby's CoC was 100% shot down by Matz
...We have set our Code of Conduct.
https://www.ruby-lang.org/en/c...
I hope it works. We may upgrade it if something happens.
Matz.
... Coraline continued being a shit stirrer. Notice how the community basically told her to "fork off". (Pun intended.)Matz isn't alone. Other have voiced their criticism of her CoC:
Given a choice between only two extremes, I'd far rather have Linus Torvalds telling me I'm an idiot and my code is shit, then exist in an offense-taking culture where various forms of criticism are re-branded as "harassment."
Back in 2013 Stupid Juvenile Whiner Sage Sharp targeted Linus. Failing that, she is now targeting Ted Tso calling him a "rape apologist".
Funny how these people love to play Judge, Juror, and Executioner, all at once without any evidence, and want to their CoC to be inclusive even when they aren't, but I digress.
What do these examples have to do with Linux, Linus, and the CoC ?
Eric Raymond pointed the dangers of meritocracy back in 2015. with his Why Hackers Must Eject the SJWs article. The example he brought up was about djangoconcardiff lying about patch rejection in the django community.
I noticed you have rejected some pull requests to add some good django libraries and that the people submitting those pull requests are POCs (People of Colour).
rosarior shut that down.
The pull request was rejected not the person. Of the people who did not had their patches accepted at least one submitted another pull request and was accepted or are contributors in my other repositories, disproving your basic premise.
There is no need for a code of conduct, there hasn't been a conduct related incident with the repository and nothing about a contributor comes into play when rejecting or accepting a patch (as proved above). An explanation is provided when a patch is rejected, and some have been left open to re-asses in a future time.
I'm not white and please don't make any other assumptions about me, they hold no relevance to the matter at hand.
Now I hate conspiracy theories with a passion but does the "recent" rash of CoC changes seem to be politically driven? Maybe. There SEEMS to be a larger narrative at play.
Regardless, I still think it is too early to tell but this inclusion of meritocracy is definitely something to keep an eye out for in the future.
-
Re:Ruby...
Ruby was inspired by Perl, among other languages. It was in particular not inspired by Python, at least according to it's creator:
http://www.ruby-lang.org/en/ab... -
Like everything else start with the basics
I feel your confusion. This may be "old school" but I feel it's solid (or has been for me). Start with learning the basic rules.
A lot of people like Python but because most languages use certain characters to enclose blocks of code (and python only uses indents) I would suggest starting with Java or C/C++. Many here will say Python is easier (ruby is probably easiest for many), but your goal will be to have room to grow. You'll find more languages conform to the C/C++ or Java syntax style rules than Python or Ruby. I find it easier to ready than Python myself.
Do yourself a favor and skip VB.net. If you want pure Microsoft (and I would advise against that, would have saved me much grief early in my career) you can do C# and you'll be better prepared for languages with more platforms.
Java, for example you can use in many enterprise system and embedded systems, including Android. C/C++ you can use for robotic controllers, IPhones (objective-c), real-time critical applications (and gaming!!).
Some may suggest starting with scripting languages like PHP, Python or Ruby. there is faster "joy", but I'd sooner suggest starting with MIT's Scratch https://scratch.mit.edu/ (GUI language for teaching children basic of programming). It's a great teaching tool for anyone I think. Hey, it's still valid basics which converts the GUI instructs into 'C'. the reason
I'm so "hung up" on starting with C/C++ or Java is most newer languages take a lot of their cues from the concepts widely used in C/C++/Java. once you learn one of these (especially C++/Java) you can step into any other language out there with relative ease. Some good sites to start would include:
http://lifehacker.com/five-bes...
Note: These are all free or have free options
http://www.learn-c.org/
http://landofcode.com/programm...
https://ocw.mit.edu/courses/el...
https://ocw.mit.edu/courses/el...
https://www.codecademy.com/lea...
http://www.coursera.org/ (real university level courses, a little intimidating at first, but worth it)
http://www.cplusplus.com/doc/t...
For python:
https://www.python.org/
For Ruby:
https://www.ruby-lang.org/en/
the courses as udemy are a little light so I'd only go there for review.
I've given many options here although I've stated my preference. The other advantage to using C/C++ or Java is they make using these invaluable books easier to read:
Writing Solid Code: Microsoft Techniques for Developing Bug-free C. Programs (Microsoft Programming Series) by Maguire, Steve
Code Complete by Steve McConnell
Yes, these books are from MS and old, but I found them invaluable (and I wish MS had actually practice what came from their own publishing companies when writing the code for W2K and XP). Was required reading at one workplace. You'll want to learn about Object-Oriented approaches as well as syntax. It's a lot to take in and this is just the beginning, but it's fun journey. Oh, I would agree, don't bother with Basic. You are better off with Python or Ruby. :D Again, to reduce your learning curve later on, I'd start with C/C++/Java. You'll be glad you did. -
Now all we need...
Now all we need is for someone to port Ruby 2.4.0 to FreeDOS 1.2!
-
Re:And the next time you see a Code of Conduct
They have every intention of setting themselves up to be the arbiters of what can be said and done, even outside of campus or a FOSS project.
To support this statement, read through the thread for Ruby. Make sure you sync your reading of the thread with the Twitter feed of the person who opened the discussion. Read her meta comments and those of the people she retweets as the Ruby thread plays out. You'll find that this isn't about being professional, considerate, kind, or ethical. It's a power grab. Plain and simple.
-
And you left out Ruby's a turd to begin with
There's a reason why it's buggy and slow - it really is a TURD.
For example, look at the source code. See how it uses setjmp()/longjmp()? Yeah, that makes for easy-to-maintain code.
Now go read the man pages for setjmp()/longjmp(). Ruby misuses them - to the point where it only works because it has to be hacked like crazy in hardware-specific ways. Read this:
https://bugs.ruby-lang.org/issues/5244
Look how much effort had to be expended just so Ruby could be compiled with optimizations.
-
Re:Great for learning programming, too!
There's no reason you couldn't learn to program inside a web application - it limits the tools you can use, sure, but it's certainly not impossible.
I suppose I'll have to go into the witness protection program now, but here is a site/language alreay doint just that:
-
Re:Should Everybody Learn Calculus?
Should everyone learn to code, sure, now pick a language. That is the real problem a lack of a universal learning language. Obviously first up it has to be free and open source or it will fail, just as a copyrighted language would fail. Imagine paying a licence fee to speak. So the big challenge is to pick a universal coding language. So far Ruby https://www.ruby-lang.org/en/ seems to be doing a slow but sure climb to the top.
-
Re: Ruby is a great language
"My scripts stop working and I have to fix everything, this is not userfriendly."
That's not a problem with Ruby, it's a problem with jruby.
"Documation is scattered and incomplete. It's something that needs to fixed if they want to get to version 4"
No, it isn't.
And if you want more documentation get your hands on the book "Programming Ruby" (often incorrectly called "the pickaxe book"), like everybody else does. It is frequently updated for the latest ruby versions. Since it's from Pragmatic Programmers, purchase once and get the (pdf) updates whenever they come out. -
The same language
Java and C# are not different languages. They are the same language - much more similar than, for example Medley Common Lisp and Franz Allegro Common Lisp, and those are two implementations which both conform to the same published specification. Java and C# have very slightly different syntax, and slightly different core libraries. But if you can read (or write) one you can read (or write) the other. The compilers work in very much the same way, and even the object code and virtual machines are similar.
Which isn't surprising. Microsoft based C# on its own implementation of Java, changing it (only) just enough to get around legal problems with Sun. It's a very sincere flattery. C# is slightly newer, so it has slightly less legacy cruft. Apart from that, you are comparing apples with apples here. If you want a more interesting comparison, compare Java/C# with Ruby, Python, Lua, JavaScript/EcmaScript or Clojure.
-
Re:Why perl?
Completely untrue. Here [ruby-forum.com] is documentation of someone complaining about a potential regression error in step for ranges when Ruby went to version 1.8.6. So obviously it existed even before then.
Yep, I was off a bit. I couldn't remember the exact version, so I did a google search and trusted a forum post. Anyhow, it turns out it was added in 1.8.0
Cool! An official source:
http://ftp.ruby-lang.org/pub/ruby/1.8/changes.1.8.0 -
Re:Really?
Agreed that PHP needs a major cleanup, but the resultant product probably shouldn't be called PHP 6
I agree entirely.. try some of these forks: http://www.ruby-lang.org/ http://www.python.org/ http://www.java.com/ http://www.microsoft.com/net, http://nodejs.org/
They are actually good for a change!
-
Re:Python
I'll oppose that. Instead start right here http://tryruby.org/levels/1/challenges/0, and or here http://www.ruby-lang.org/en/documentation/quickstart/ and then move onto here http://www.rubycentral.com/pickaxe/ and here http://ruby.railstutorial.org/ruby-on-rails-tutorial-book.
Ruby has to be the best learning program, from the interactive Ruby shell, with immediate execution of lines of code to very compact and easy to read code.
One click in a browser and he can be coding in Ruby in seconds.
-
Re:C isn't dead...yet.
Well there is always been two sides of the medal balancing each other - convenience and performance, and i doubt it will ever change. And i think Ruby is really stands apart from other mentioned languages, a lot more sophisticated and carefully designed.
Ummm, no. The implementation is fundamentally a turd..
-
Ruby is a TURD
Ruby is a giant stinking turd written by a bunch of clowns with little grasp of how computers work.
Don't think so? Read this:
Yeah, Ruby completely misuses setjmp()/longjmp() throughout its code. Yet get this:
Ruby's callcc copies stack to heap, then calls setjmp(). Stack frames are restored from the copy before longjmp(). -- Shugo Maeda
You moron - read the fucking man pages for setjmp()/longjmp(). Since when is copying a stack off somewhere a sufficient condition in allowing one to arbitrarily restrictions placed on a system call?
And we're supposed to think such crap ideas don't permeate Ruby through and through?
-
Two links
http://www.ruby-lang.org/
http://love2d.org/That is all.
-
Forget what they want, do what _you_ want
What worked for me is to do things on my own time, according to my own insights, using the tools that I chose.
Forget about the people who are telling you what to do, and the things they are telling you to do. If it were up to you, what would you do, and how would you do it?
For me, it turns out a lot of the magic is in typing a few words and seeing things happen. I don't like working in languages in which I cannot be productive. I don't enjoy being bogged down by office politics, inertia, and other people's mistakes. Throw all of that away and pick up a language in which you can make your computer do tricks with a few words. Like Ruby. Or Python. Anything with a REPL, really.
Possibly the most important tip for those in similar situations: don't hang around too long if the environment isn't working for you. I spent a lot of time working with tools I didn't like (and that weren't going to improve, due to the whole culture behind them being wrong), until I figured I was wasting my time building a resume for things I wanted to get away from. Figure out what you'd rather be doing, and jump ship as soon as you get a good opportunity to go do that.
-
Re:Lets prove him wrong!
rb_funcall(rb_mKernel,rb_intern("puts"), 1, rb_str_new2("Hello World"));
Okay, done, now sit down and enjoy the happy feeling.
...How long did it take for you to squeeze out that turd?
Yes, Ruby is one giant stinking turd.
Just read the man page for setjmp()/longjmp(), grep through Ruby source code, and count how many times it violates setjmp()/longjmp() restrictions.
But hey, if "Works most of the time. We think. On a good day..." is what you aim for, go for it.
Me?
My standards are higher.
-
A Radical Challenge
You know, I first got started programming when I happened upon a left hand basic cartridge with an Atari 400 for $5 at a garage sale. It came with an attachable floppy disk drive that was DOA. Countless hours would be spent with a small black and white TV with me writing procedures. Should the power turn off, all that work was lost.
Despite growing up below the poverty line working on farms, I was able to go to college with enough grants based on need. This is where our paths diverge ... and I would not automatically assume that my four year degree at the University of Minnesota would make me a better programmer than yourself or anyone who taught themselves to code. But the important point of this is that when I interview (and I've held interviews for programmers to come onto my team many times) the interviewer is looking for you to prove that you will be a self motivated asset to the team. If you can put MIT or some prestigious school, they often lower their required threshold of proof. If you put U of MN there is still proof required -- after all there are some ~50k students at the U of MN and as such it would be entirely possible for some idiot to be herded through with the other cattle. So they just need to make sure I am not this idiot -- or at least not in the area they need me for. Now, when you have institution to back up your claim of skills, the proof requirement quickly becomes insurmountable.
So I will issue you a challenge and I will target the Ruby language and Rails framework. This probably isn't the best option for a job seeker (I think some Java with maybe Spring Framework would be better suited for a position) but this could result in proof. If you want reading material for any of these steps, I recommend the Pragmatic Programmer series on Ruby and Ruby on Rails (used it is quite cheap but here is a free alternative).
Step One: Learn Ruby. Ruby is a functional language that is very simple and easy to learn but difficult to completely master. The flexibility of the language seems to continually leave me with more and more options at my disposal. From mixins to domain specific languages, it just keeps on giving. I'm guessing with your background you're going to notice that some things in Ruby are slow. This is okay. As computers have gotten beefier, programmers have sacrificed performance and (to a large degree) memory in order to make code easier to maintain and write.
Step Two: Learn Rails. Rails is a very extensive framework that is again easy to learn. That tutorial should show you how to master concepts like quickly creating a CRUD (Create, Read, Update, Delete) application for a blog or recipes (I forget). From here you have to use your imagination. Make something that is CRUD or some mutation of CRUD to demonstrate that you know how to utilize and extend this concept. You might use census data and experiment with new UI toys like Processing or HTML5's Canvas element. I think if you have access to some mildly interesting data that building a site you'd like to share would be a great idea (even if it is just in CRUD format). But get it to a state where you're proud of it.
Step Three: Github. Put your source on Github.
Step Four: Host your project on Heroku. You might buy a domain name if you're open to $12/year. I don't know how far you want to take this part. But get it so that people can access it.
Now once you've iterated over that a bunch -
I like Ruby
It's lightweight, portable, and has a ton of interesting projects for learning. Start here at http://www.ruby-lang.org/en/ Check out the "Try Ruby in Your Browser link" on the right hand side.
-
Re:Step by step, Java reinvents Smalltalk...
Bill went on to lament that had PP played its cards right, Smalltalk would have been the language used by Sun and the language that would have ruled the Internet.
In case you haven't noticed, the language that rules the internet is not Java, but scripting languages (one of which that is growing particularly rapidly pulls quite a bit from Smalltalk).
-
Re:it's an interesting case
``It's hard to place the language in any camp, because it does furnish functional programming and object-oriented features without really committing to the dogma of either one. It gives you a ton of interesting features that seem to work really well in concert''
There actually is a camp for languages like that. They're called multi-paradigm languages, and I believe a language that can elegantly express many paradigms is a Good Thing. Languages commonly considered to be multi-paradigm include Ruby, Lua, Common Lisp, and OCaml.
-
Re:Looks interesting as replacement for Python
How about you give Ruby a try?
-
Re:Your input has been noted
That is pretty thin thinking. Oracle want the full software line up, from the operating system right through to the office quite, from personal users right through industry and into education and they want services and support. This is all about Oracle versus M$ and the hardware is secondary. Oracle big push will be in the educational market, a complete offering backend server systems to front end smart books. For business much the same idea, with the addition of either smart or dumb terminals in addition to the smart books.
The best place now for MySql is where it will most effectively be incorporated into OpenOffice for the individual users and small business. For the bigger end, it really is all about services and support upon a national or even global scale.
As for java http://www.ruby-lang.org/en/ is making an end run around it, not that java wont continue to have a very important place in programming but ruby and of course http://rubyonrails.org/ are really going to take a big bite out of java for the bulk of typical relatively simple web programming but if you are talking about
.net being squeezed into complete .nothingness you probably are totally correct. -
Re:English thinking?
-
RUBY ruby RUBY ruby RUBY!!!
I completely share your disappointment at Python's usage of indentation as syntax. I gave python a deep review when it appeared, around '97 or '98. I was fascinated by the concepts, I could see there was some important element of progress in it. But I concluded that I could never use the language because of the indentation problem. It was (and is) unacceptable that I would end up changing the logic of a program by inadvertently deleting an invisible tab. It is the duty of the editor to fix the right indentation of my code, and it is an invaluable debugging tool to press tab in my Emacs screen and find out what the right indentation should be. This is obviously impossible if it is the change of indentation itself that marks the end of a loop or of an if clause. Really really really impossible to adopt.
I had hopes that the Python developers would eventually give in and allow the (maybe facultative) usage of a reserved word for closing loops and clauses. This has not happened. Worse: it has become a matter of pride, a distinctive aspect of the language.
I went on with my mostly C with limited Java usage. Until in 2005 I decided to give Ruby a try. From that moment, all my projects have been written in Ruby, with substantial C inserts. After writing almost 100.000 lines of Ruby code, I am more awed than ever about the qualities of the language. It goes without saying that you use keywords to close loops and clauses in Ruby (either the end keyword, or C-like curly brackets, at your choice.)
A few reasons for giving Ruby a try:
- Ruby is from the same generation of Python, only newer. Same zeitgeist, better implementation.
- Ruby comes from Japan, where it is developed with typical pragmatic attitude. The language contains what is useful, often with more than one possible alternative (you can create your own distinctive style).
- Ruby implements the object-oriented paradigm in a full, no-compromise way, which is at last capable to deliver the results (in terms of ease of coding and adherence to thought processes) that were promised by the theoreticians.
- Ruby has a lean, very efficient way of including C code. it is really possible to have the best of both worlds. If you need to use a C library, it is easy to write your own bindings, provided they have not already been written by someone else.
- Ruby is very net-aware. Generic tasks can be implemented in a few lines of code.
You should take great care to distinguish between Ruby and Ruby on Rails. The first one is the language. The second one is an application based on the language. While it is obviously good that RoR gained such a notable momentum, it must be remembered that Ruby is a language as of itself, with great qualities that can be harvested even if one does not use RoR. I, for one, do not use RoR.
-
No One Does
"I must admit to not using perl for anything serious in a very long time"
No one does. Perl is a stinking pile of shit that no one but teenage Slashdot Linux dorks give a shit about.
-
Whatever language you like...
For example, some of the following: OCaml, Python, Ruby, C++, D.
But there are really lot of them available. What's best, depends on what you try to do and your taste. -
Re:The inevitable Java vs Mono
``It is unfortunate that the mono is so closely associated with Windows, if the mono team had created/implemented a
completely new set of cross-platform libraries (that bore no relation to Microsoft's framework) it would be more accepted.''But then they would just have done what various others have already done, wouldn't they?
-
Some of my picks
C#/.NET - http://msdn.microsoft.com/
Haskell - http://haskell.org/
Nemerle - http://nemerle.org/
OCaml - http://caml.inria.fr/
PHP - http://php.net/
Python - http://python.org/
Ruby - http://ruby-doc.org/ (API docs), http://ruby-lang.org/ (for more links and info)
SML - http://smlnj.org/ (the most popular implementation), http://standardml.org/Basis/ (standard library)(X)HTML/CSS/DOM/XSL/etc. - http://w3.org/
Hm. Now that I've written it down, I see most of these are obvious, but then it makes sense, that the "official" sites tend to be the best reference.
-
Ruby
In case no one's posted them yet:
Ruby home page, for starters.
RubyDoc, especially the Pragmatic Programmer's Guide with some excellent examples for those getting started.
Why's Poignant Guide, an offbeat way to get started. -
Re:Bah!
This coming from the peanut gallery??
-
ECMAScript 4
ECMAScript 4 will be a modern language in all senses of the word. It will support optional type annotations, destructuring assignment, generators, convenient inheritance, and all the other trappings of a modern language.
With ECMAScript 4, the advantages of running anything other than Javascript fade away: you still have all your Ruby/Python/Lisp features, just spelled differently.
And from the browser point of view: would you rather create a generic scripting framework or add one language and be done forever?
Also, instead of trying to compile languages to MSIL, why not just write a source-to-source translator to Javascript? Isn't that what some people do to Java these days? -
Re:Unit Tests are not wasteful
Absolutely true. One situation where unit testing is even more important is when writing in dynamically-typed scripting languages like Ruby and PHP. I tend to find that if I'm writing a small Java class, I don't really need to write tests, since I can rely on the compiler to pick up any type flubs I make - while in scripting languages, it's very useful to have the tests to make sure one doesn't screw up the typing.
In Ruby, I've been getting into the 'BDD' side of things on an open source project - using RSpec. It's pretty cool, actually. You write your tests so that they describe the behaviour (using brackets rather than do-end so that non-Ruby folks can read it):
describe "Cars" {
it "should have four wheels" { car = Car.new; car.wheels.should == 4 }
it "should have a reverse gear" { lambda { car = Car.new; car.reverse_gear! }.should_not raise_errors }
it "should have reclinable seats" { car = Car.new; car.driver_seat.recline!; car.driver_seat.location.should == :reclined }
}What's cool about this is that the code describes what the class should do and is a lot more readable than the standard xUnit tests (is it assert_equal(expected, actual) or assert_equal(actual, expected)?), it forces you to write tests for the actual behaviour - the things that the code is doing! - and it also makes a really pretty HTML output that has each description and behaviour listed - coloured with red (if the test is written and fails), yellow (if the test hasn't been written) or green (if it works). The BDD approach is extremely hyped up and trendy in the Ruby community, but is actually well worth pursuing. Especially now JBehave exists.
-
My listMy list wish-list of "languages to learn next" looks something like this, in no specific order:
Haskell
Ruby
Erlang
R
Prolog
Groovy
Scala
Lua
Lisp
Smalltalk
Scheme
Ocaml
Ruby and Erlang are the two I've spent the most time with so far. I like Ruby enough so far, that I've decided to write the initial
batch of install scripts for OpenQabal in Ruby.
Outside of that wish-list, I also harbor some vague hope of one day finding time to dabble with Forth, Fortran, Perl, and maybe Dylan. -
Re:Noob's question.
Dip into Ruby (it's not an extension to Java, but there is an implementation that runs on the JVM). The Ruby in Twenty Minutes guide is excellent. There is even a ruby interpreter that runs in your web browser.
Next, dip into scheme. It's a more practical kind of LISP than Common LISP. Get yourself a PLT Scheme with a friendly IDE and tutorials. Play for a while and then go and read about Lambda Calculus
:-) Then you can start on Haskell and Erlang etc.Postscript is a bit domain-specific. FORTH is its grandparent, and much simpler to learn. It's been about for years and there are hundreds of free FORTH systems about. I first learned it when I was 10 on my ZX81.
D looks interesting, but if you have already looked at C and C++, I would strongly recommend looking at Objective-C and contrast it with C++. It's smalltalk-inspired object orientation applied to C vs. Simlua-inspired C++. You will be astounded at the difference. You will also see some similarity with the design of Java...
Most of all, have fun and don't be afraid to start with a quick half hour looking at each one
:-) Don't try to become an expert over night. It's taken me 20+ years and I'm still learning, and having more and more fun :-) -
Re:Merry Christmas!
I'm very happy to see something productive out of the Parrot community. They've promised some great things, and we've been waiting a long time to use their offerings. Some people in the community (see article below) have started to doubt the Parrot project's usefulness, but maybe this cool Perl6 development will make them re-think their stance.
Will Parrot ever truly deliver? (http://pinderkent.blogsavy.com/archives/124)
Earlier today I was reading an article about Parrot. Parrot is, as stated on the projects Web site, a virtual machine designed to efficiently compile and execute bytecode for dynamic languages. Parrot currently hosts a variety of language implementations in various stages of completion, including Tcl, Javascript, Ruby, Lua, Scheme, PHP, Python, Perl 6, APL, and a
.NET bytecode translator.So Parrot does sound like an interesting piece of technology. Its understandable how a common runtime for scripting languages could prove beneficial. But will it ever be a platform suitable for serious, production usage? I have my doubts.
Parrot has been under active development for quite some time now. The initial 0.0.1 release was made on September 10, 2001. During 2007, weve seen a release every month or so. So a lot of effort has been put into Parrot over the past six years. It has surpassed one of the major stumbling blocks with many Open Source projects, in that it has managed to build at least some development momentum. Unfortunately for its supporters, Parrot has never really seemed to catch on. I think there are a number of reasons for this.
Stability is probably the first problem. I dont mean stability in terms of the runtime crashing, or anything of that sort. Im talking about concept stability. There has always seemed to be a relatively large amount of change between releases. While this is good, in that there are improvements being made and new ideas being implemented, this causes problems for users who want to build reliably upon Parrot. Individuals and businesses often do not, or cannot, invest the time and effort to track a continually-moving target like Parrot.
The language implementations for Parrot, while many in number, have been of limited use. Looking at the status messages of some of the most promising and practical language implementations shows why this might be the case. Such messages include:
- Incomplete - but all examples and test cases are working. (Amber for Parrot)
- Most of the samples work. (BASIC/compiler)
- Has been broken for a long time. (BASIC/interpreter)
- Parser is pretty complete. Generates PIR for basic Ruby programs (Cardinal, Ruby CVS Head 1.9 implementation)
- Functioning, all samples working, lacks IO routines (Cola)
- Working for some simple forms. Due to some broken features, most of the bootstrapping code has been commented out. (Common Lisp)
- Functioning for handcrafted test cases. Loading frozen state is currently broken. Far from complete. (Parrot m4)
- This project has been abandoned. Any takers? (Pint, an experimental PHP implementation)
- Passes nearly 25% of tcls (lightly converted) test suite, using a Test::More like harness. (Tcl)
So while there are many interesting language implementation projects for smaller or more obscure languages that have reached further stages of completion, the ones that were most likely to be of practical use seem to be lacking. Now, this is understandable. Maintaining a suitably complete Ruby, Python, Perl or Tcl implementati
-
Re:Scalability?
Excuse me but http://www.ruby-lang.org/ runs on Radiant CMS, which is written in ruby, not on php.
-
Re:Why Ruby?
Alright, I know this is going to be flame fodder, but I'm genuinely curious: does Ruby have anything to offer for someone who's already very proficient in Python (and Django, so Rails is already covered)?
Take a glance at Ruby from other languages. This page highlights some of the things that make Ruby Ruby. -
What age of nephew (or niece)?
Product endorsements, informative links, allegations of having a girlfriend - this has to be an advertisement. Joking aside, to whom are we focusing the collective attention of Slashdot on? While an USB microscope can be a cool toy or an inspirational tool of learning, the child's age and interests go a long way to qualify a gift's quality.
As technology professionals and/or Slashdotters, we tend to go a bit overboard with our attention to gadgets. For a seven year old, the USB microscope would be a neat curiosity for a short time, but after a week of investigating the complexities of boogers at extreme magnification, its usefulness would probably diminish quickly. At 13, an interested child would probably get frustrated quickly with the limitations of an entry level microscope. An uninterested one would probably follow a path similar to the seven year old's.
For gifts that feature the wonders of nature (chemistry, physics, math, colors, electronics, etc.) simple items can be much more engaging teachers than flashy electronic gadgets. After all, hasn't your nephew grown up with the overwhelming presence of cheap and easy "brain dead simple" gadgets? Give him something that will show how much fun it can be to solve a complicated problem.
Back to the age question. . . For a younger child, perhaps 5 to 8, look for some sort of unique puzzle or construction set - you'd be surprised at the building block sets that are available these days. An older child, boy or girl, may get good creative use out of a lego mindstorms kit, a beginner's programming book, or a good set of sketching pencils. The truly cool gift that is best for your nephew is likely to still be cool long after the USB microscope has passed on. -
Re:Article doesn't make sense
Rails is to Ruby as Symfony is to PHP. I've tried Symfony myself and real had a hard time getting my head around it, likewise I'd probably have the same problem with RoR only worse because I'm more attuned to PHP or Perl, I do find that by using the Smarty templateing engine and MDB2 Database API that what I'm working on has shrunk dramatically and is much easier to understand. There are several Perl equivalents on CPAN, that are probably more reliable and mature than the PEAR equivalents in PHP, I assume that the only reason they aren't used more is because embperl is more arcane to use than PHP.
-
Re:Why rewrite existing systems?
http://ruby-lang.org/ : "This website is made with Ruby and powered by Radiant CMS."
or were you talking about some other ruby website ? :'( -
blazing new ground here, man
-
Keep looking for more: Ruby is ahead
I came into this business from a bit of a back door (although I suspect it to be a common back door these days). I started with spaghetti code PHP, moved to OOP php with php4, then php5. I am now quite frustrated by the partial OOP implementation of php5, as I develop more complex applications. I become even more frustrated with PHP the more I learn about java.
I started with PHP too a long time ago. I've tried Perl, Python and Java. I'm a (very satisfied) Ruby programmer right now since it has a good balance of nice features taken from other languages, in my humble opinion. Learning Ruby has motivated me to know more about programming languages and now I'm looking to try SmallTalk, LISP and Haskell.
If you like Java's object orientation, you'll love Ruby's real object orientation. OOP as it was intended[1]. It's like Java done right, and without the verbosity.
The type safety at compile time makes it far easier to develop bug-free code
...The reality is not that categorical. Static versus dynamic typing benefits is debatable[2]. Incidentally, Java seems not to be type-safe [3]
Additionally, Java gives me code re-use at it's ultimate.
[...]
Not to mention that I do my development on my Mac, and deploy software across our organization to Windows and Linux desktops.You realize that code reusability and portability is not Java's exclusive, right?
Yes, you do, of course.
Don't stop at Java. Keep trying other languages. You'll be surprised.My humble suggestion: Ruby.
[1] Dan Ingalls: Object-Oriented Programming - Google Video
[2] Static and dynamic type checking in practice
[3] Java is not type-safe -
Damn!-Group Hug!
"We would still be thankful for RMS though. "
Thank you, Richard!
Thank you, Richard!
Thank you, Richard!
Thank you, Richard!
Thank you, Richard!
Thank you, Richard!
Thank you, Richard!
Thank you, Richard! And happy birthday!