Interview With the Creator of Ruby 89
snydeq writes "Ruby creator Yukihiro Matsumoto discusses the past, present, and future of the popular programming language, calling mobile the next target for Ruby: 'I'm currently working on an alternative subset or dialect of Ruby for the small devices. I'm going to make it public early next year. Of course, mobile computing is the way to go, so that's one of the reasons I focus on the Ruby dialect working on the smaller devices.'"
Re: (Score:3)
Re: (Score:2)
Redmine.
Re: (Score:2)
What's "Redmine"?
Re: (Score:2)
Fairly widely used issue tracking and collaboration tool. The GnuRadio site for example is based on it.
Re: (Score:2)
Re: (Score:3)
Re: (Score:1)
Where I work we use Ruby for nearly everything; we use java when we need to squeeze more performance out of our hardware.
LOL.
Re: (Score:1)
Re: (Score:2)
You know, smaller devices.. (Score:2)
Re: (Score:1)
Makes no sense from an engineering perspective but mercy be that people who are irrationally and emotionally invested in a pet language will STFU!
You seem irrationally and emotionally invested in javascript.
Re: (Score:2)
Re: (Score:2)
Obviously, rather than compiling to js and running on the the preinstalled JIT, we should have runtimes for ruby, python, lua, PHP, Perl and every other scripting language under the sun installed on our mobile devices. Makes no sense from an engineering perspective but mercy be that people who are irrationally and emotionally invested in a pet language will STFU!
You seem irrationally and emotionally invested in javascript.
If javascript is the only runtime preinstalled, using javascript seems like a pretty rational thing to do to me...
Re: (Score:2)
why not, this is second decade of 21st century and gigabytes of storage are cheap. a jvm or dalvik or ruby virtual machine plus a few languages are nothing.
Re: (Score:1)
You seem to be implying that Android does not implement a subset of Java.
http://www.zdnet.com/blog/burnette/java-vs-android-apis/504
Re: (Score:3)
androids version of _java_ is quite complete.
it's certainly not midp 1.0 type of subset on the vm side. you know, because you're not lacking things like floats.
api's are another matter of course. but what would you do with a mouth class if you had no face to scream from.
if he's talking things like hw abstraction api's, then that's another matter. and highly platform specific. ui classes are also another matter.
otherwise there's no difference between mobile and non mobile, unless ruby needs some stupid busyl
Re: (Score:1)
TFA is nothing but fluff (Score:5, Insightful)
Re: (Score:1)
Such as?
Re:TFA is nothing but fluff (Score:4, Interesting)
Oh let's see...
1. What are prospects of incorporating true, concurrent multithreads?
2. JIT - why or why not? and when?
3. Is performance closer to Java realistic for Ruby? What are the obstacles?
This is just the most pressing stuff and I don't even use Ruby much anymore.
Best of luck, Matz... (Score:2, Interesting)
While I do have Ruby on my N900, I wish him the best of luck in his goals. Between the attacks from the Apple and MS camp on Android and little to no attention being paid to real solutions like MeeGo, all we'll be left with in short order is anti-geek platforms like Windows Phone and iOS, where running things like Ruby (or Python) are expressly verboten.
Re: (Score:2)
Because my experience with Ruby on mobile devices is no indication of what the mobile space will look like in the very near future. I expect in the near term, being able to put a scripting language like Ruby on a mobile device will be hard if not impossible. And I am not optimistic.
Re: (Score:1)
The real question is why in the world would any non-developer (and I use the term lightly) run a CPU burning, battery draining, GC requiring interpreted language on a mobile device in the first place? Python / Ruby / Perl / TCL, all of these are prototyping / utility languages. They're not designed to build low overhead / low cycle apps. I can see why developers who aren't proficient in C / C++ / Objective-C want them, but in the context of user experience, there's absolutely no net benefit to using these l
Re: (Score:2)
The real question is why in the world would any non-developer (and I use the term lightly) run a CPU burning, battery draining, GC requiring interpreted language on a mobile device in the first place? Python / Ruby / Perl / TCL, all of these are prototyping / utility languages. They're not designed to build low overhead / low cycle apps. I can see why developers who aren't proficient in C / C++ / Objective-C want them, but in the context of user experience, there's absolutely no net benefit to using these languages in creating apps for mobile devices.
Actually, there is. Most mobile devices are not rebooted frequently and have a relatively (to desktops) small amount of RAM. Also, many mobile apps are long running. An app might be run for weeks before being closed or before the device is rebooted. This is a recipe fore heap fragmentation. Garbage collected language runtimes don't fragment memory, or if they do they can clean it up very easily. Once a C malloc hands you a block of RAM, the OS and language runtime cannot move it around to reduce fragme
Re: (Score:2)
Re: (Score:1)
It's incredibly easy to fragment memory in a language with GC; see Firefox.
With that said, you can use a copying or compacting GC strategy to minimize the possibility, but then you increase your memory requirements to manage the copy and you reduce your cache coherence.
Re: (Score:2)
all we'll be left with in short order is anti-geek platforms like Windows Phone and iOS, where running things like Ruby (or Python) are expressly verboten.
I'm not aware of any restrictions regarding writing apps in Python (or any other language) for Windows Phone. The problem is that it doesn't have a Python implementation targeting it - CPython requires a native code compiler, which is not available, and IronPython requires DLR, which relies on certain .NET features not available on WP. It is still quite possible to implement something less efficient than IronPython on WP subset of CLR, and then write apps in it.
As for iOS, it used to have an explicit provis
I am not sure why... (Score:4, Interesting)
...but this statement:
> Of course, mobile computing is the way to go
It kind of depresses me for some reason. I am not being ironic, I am serious. I don't know why that makes me feel down.
I feel like all the training I did to be able to code games** in a PC is going to be obsolete before I know it.
**or any other desktop coding
Re:I am not sure why... (Score:4, Informative)
I feel like all the training I did to be able to code games** in a PC is going to be obsolete before I know it.
**or any other desktop coding
welcome to the world of developing.
This is how it's been, and how it will continue to be. Keep growing your skill set and you'll be fine (and a better programmer for it).
Re: (Score:3)
I am not really a professional coder. I don't even work in computer-science related jobs. I just spent my limited brain power into somewhat successfully learning a portable language like C with GL and such.
Because of that, I am not as passionate about coding as many users in Slashdot. For me it's a means to an end (game dev), and a pretty painful one at that.
Without time and resources ($$$) to buy books it was a pretty slow and painful experience (specially because asking for coding stuff usually has 2/3 pe
Re: (Score:2)
I am not really a professional coder. I don't even work in computer-science related jobs.
Same here; I'm a web developer.
Re: (Score:2)
Of course you're capable of moving on. It just takes time and work.
There are books on Android programming - several of them (I like "Hello Android") have great code examples. The Android SDK (and emulator) is free, and uses the (also free) Eclipse IDE. The cook isn't free, but the SDK (and code samples + tutorials from Google) and IDE all cost nothing but your time to download them. Pick something and DO it. You can! You will mainly get better at coding from writing code, so make up a toy application tha
Re: (Score:2)
Heh, well, I always thought of "sales" as "players" instead. I never intended to sell any of my (game) work, just hoping that people picks it up and enjoys it.
*old man voice* Come son, listen to my story. (Skip to last paragraph if you don't care :P)
Actually the promise came because someone, years ago, was concerned about starting a game because of costs in software and hardware. Writing my first game was painful but proved that it was possible, took a few months to get the engine rolling (C89 + GL + SDL +
Re: (Score:1)
It teaches me the differences between the languages, and some of their relative strengths and weaknesses. (plus it gives a portfolio of my work, since the programs I work on for my job are not showcaseable).
Lots of people would be bored to death by that approach, but I bet they each have their own.
If you learn well from books, g
Re: (Score:2)
> I am not sure why...
No?
> I feel like all the training I did to be able to code games in a PC is going to be obsolete before I know it.
Oh, there it is!
But really, it's not that mobile computing is "the way to go", just that desktop computing is no longer "the only way to go".
People who've been closed-mindedly programming their Windows apps for years are scared that they now have to think in different terms, be those architectural terms like "do I need to think about 64-bit processors" or "do I need t
Re: (Score:2)
Actually I develop cross-platform FOSS games, not really stuck with Windows apps you know ;)
That I code games doesn't mean I don't take it seriously, despite (as pointed in other post) not being as passionate about it as other people here.
To be honest, I find portable devices to be expensive and not powerful at all.
In my lunch break, with my cheap netbook, I can do everything I can do at home (2D work, 3D work, coding, tracker music, compiling, debugging, etc). It's the only way to develop a game while havi
Re: (Score:2)
The main problem I'm facing is the Linux distros don't generally include libraries that allow my program to easily make https connections (http works).
Compiling the https stuff for each and every distro (and significant version) and bundling them sucks.
I'm not aware of many ways around it. I need the stuff to be able to run on as many OSes and OS versions as possible, and the downl
Re: (Score:2)
Well, yes, I actually do different builds for and in my target platforms. It's an extremely brute and simple approach but never had a complaint from users.
For the rest I provide the sources and detailed install instructions (download this, open this, type this, done) and a dummy build script in bash for those without autotools, and a more precise script for those with debian systems (fetches and builds everything).
Re: (Score:2)
Do you find that in practice they tend to be backward compatible within the distro? So you just build for the oldest supported distro (with latest backported patches of libs if possible - ugh) and it works on the new distros?
Or do you find you end up having to build for each distro version? If so it probably means that we might not bother with supporting "Lin
Re:I am not sure why... (Score:5, Insightful)
I feel like all the training I did to be able to code games** in a PC is going to be obsolete before I know it.
Training rapidly becomes useless. Education never becomes useless.
Memorize how to use a linked list library in Pascal = rapidly useless
Learn what a linked list is, why and when you'd use it = useful forever
Also much like human languages (supposedly) the first three languages are pretty tough, but once you learn a bit of ten or so, its pretty simple since all the concepts are the same. The hard part is knowing how to index thru an array without a picket fence mistake and figuring out how to troubleshoot it. The easy part is remembering or googling the syntax.
picket fence mistake? (Score:3)
I'm a kludgy self taught coder and I just googled for a moment to no avail ... can you help this perma-newb out:
What is a "picket fence mistake"?
Re: (Score:2)
When building a fence, if you put a post say every meter, how many posts do you need for a 10m section of fence?
It's an example illustrating an one-off error. It's pretty common to get this or similar problems wrong and catch yourself later.
Re: (Score:2)
Hence the fencepost error: he either said that intentionally, which makes for quite a sardonic sense of humor, or he didn't, which quite makes his point.
Re: (Score:1)
Re: (Score:1)
I'm not sure screwing up index vs count/length deserves some fancy name other than IndexOutOfRange error
Re: (Score:2)
Re: (Score:2)
I get it. Thanks. I learned perl way back when to avoid malloc but should probably go back and get closer to the machine.
Re: (Score:2)
You got a good point, and fortunately learning how to do those in C gives you enough understanding to do them in...Lua, for example. Or Ruby to stay on-topic.
Re: (Score:2)
The mobile devices (pagers, portable gaming devices, phones, laptops, tablets, prosthetic brains) are the ones that will be squeezed into one device. And that's where the extinctions will be.
Most people don't want to carry so many extra portable devices.
So if you had a prosthetic brain that did everything a phone did (and more: virtual telepathy, virtual telekinesis), you would be tempted to not carry a phone - especially if the antenna wasn't passing near an
Re: (Score:1)
Yes mobile is the way (Score:1)
Mobiles today are about the same power as desktops were when anyone cared about ruby so it should fit well
Re: (Score:1)
least I am brave enough to sign in before trolling
Re: (Score:1)
I suppose you preferred when computers filled whole rooms? Our computers have always been getting smaller, which automatically makes them more practical and useful!
Re: (Score:1)
What I want to know... (Score:3)
how hard was it to find shoes in the correct color then add all those sequins? I mean, I've seen the pair at the Smithsonian but it's my understanding there were others made as well.
Also, did Dorothy get to keep a pair?
Bad Ruby Experience (Score:1)
Re: (Score:2)
I had similarly annoying experiences with updating stuff on OSX. It could do with a nice package manager.
Re: (Score:2)
Re: (Score:2)
FWIW, the difference between the 1.8 and 1.9 versions is effectively a major version change despite not being numbered that way.
Re: (Score:2)
Re: (Score:2)
programming languages (Score:2)
Ruby is a nice little language. There are a few oddities and the C Ruby interpreter, as Matz admitted, is not very efficient.
Rails, which is what everyone thinks of when they hear Ruby, on the other hand -- well, I'll stay far away from it thanks.
Count me among those developers who never thought that the way to build robust and flexible applications is to first define some database tables, then write a little CRUD code to generate screens. Maybe back in 1989, when SQL databases were new and there were a lo
Your decision to grow facial hair (Score:2)
Re: (Score:1)