Slashdot Log In
Building a Programmer's Rosetta Stone
Journal written by Short Circuit (52384) and posted by
CmdrTaco
on Sun Jan 21, 2007 10:09 AM
from the still-waiting-for-programmer's-tower-of-babel dept.
from the still-waiting-for-programmer's-tower-of-babel dept.
Did you ever run into the problem where you knew how to do something in one programming language, but really needed to do it in another? That's what Rosetta Code is all about. A variety of programming tasks are solved using as many languages as possible. You can examine existing tasks, or create your own.
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
I don't know about firehosing it (Score:2)
Pointless, don't bother! (Score:3, Informative)
Might be worth posting somewhere once there's actual useful content, but just not now.
But the
Re:Pointless, don't bother! (Score:5, Insightful)
Parent
Re: (Score:3, Insightful)
Whoops, my fault. Being a hater is easier.
Re: (Score:3, Insightful)
The whole idea of a wiki is for the community to build the content. The Rosetta Code is rather new, of course it's not complete. But it's a damned good idea, and deserves wider advertising so that the wiki will be filled!
However, having said that, I agree, which is why I wasn't sure about firehosing this journal entry just yet. Better to let the professional FOSS experts at Technocrat have a crack at it first.
Re: (Score:3, Funny)
Well, that would be pushing the limits of the MySQL LARGETEXT field.
Re: (Score:3, Interesting)
And in the 2000's, it's well on the way to triumphing over common sense... with apologies to the author.
Re: (Score:3, Informative)
I made it through! (Score:2)
Erm... (Score:2)
Re: (Score:3, Informative)
No Fair! (Score:5, Insightful)
Re: (Score:2)
That's what google or a good book are for. Even (bleh!) design patterns.
Or programs that convert from one source language to another ...
Re:No Fair! (Score:5, Informative)
Parent
Re:No Fair! (Score:5, Funny)
http://en.wikipedia.org/wiki/Malbolge_programming
I hope next windows ver will be coded in Malbolge and open source.
Parent
Re: (Score:3, Funny)
You mean it's not?
Re: (Score:3, Funny)
If something's written in malbolge, I don't think it really matters if it's open source.
Here's better (Score:2)
There are also programs that can be compiled or run by several different compilers/interpreters: [nyx.net]
Re:Here's better (Score:4, Interesting)
Parent
It may prove useful. (Score:4, Interesting)
Of course there are also cases when you will need to port the solution to a different language. This may be the cause when the project specifications requires a specific language like Ada.
As with all programming; your mileage may vary.
Re:It may prove useful. (Score:5, Insightful)
This site could be useful, but MediaWiki doesn't seem the best tool to use, and the content so far is rather sparse. I'm uncertain whether this will prove a success; it's an interesting concept, but many interesting concepts have fallen by the wayside.
Parent
Re:It may prove useful. (Score:5, Insightful)
Parent
Re: (Score:3, Insightful)
This is what has been called the "Turing Tarpit." In a formal logical sense, all turing complete languages are equivalently powerful. But that means that punching holes in a paper tape by hand is technically as powerful as a high level language. We have high level languages so that we don't have to twiddle ones and zeroes.
High level languages themselves differer in expressiveness. They can all
Usage (Score:5, Insightful)
At any rate, I think this site has already encountered a problem which is only going to escalate as it grows: code isn't cross-indexed properly at all. For example, there are many "programming tasks" with solutions in C, but there is nothing on the C page. I think this problem stems from the fact they used MediaWiki.
MediaWiki's great for something like... well, Wikipedia. But it doesn't support a cross-referenced database like this. The wiki concept is good for this site, but the server needs to be running some software designed better to the task.
Re: (Score:3, Informative)
I'm not sure the right idea is to "know how to do something" in a particular language. If programmers are encouraged to learn algorithms specific to a particular language, how will they ever adapt once their pet language sinks? (By using an algorithm repository to re-learn rote code?)
Rosetta Code was largely inspired by a page on Wikipedia where the classic "Hello World" example was shown in a few hundred languages.
Rosetta Code takes the concept behind Hello World, and spreads it to other tasks.
At any rate, I think this site has already encountered a problem which is only going to escalate as it grows: code isn't cross-indexed properly at all. For example, there are many "programming tasks" with solutions in C, but there is nothing on the C page. I think this problem stems from the fact they used MediaWiki.
Actually, this is (almost) intentional. I want people to be able to learn about the languages they're using. I've been filling in the pages as I've had the opportunity. (I'm a full time college student, and president of a student organization.) Check the page on GCC, for example. [rosettacode.org]
MediaWiki's great for something like... well, Wikipedia. But it doesn't support a cross-referenced database like this. The wiki concept is good for this site, but the server needs to be running some software designed better to the task.
I'm open t
Re:Usage (Score:4, Insightful)
But this kind of thing should be very good for someone learning a new language - you know how to do it in one language, now you're looking it up in another one... like learning the most common phrases first when learning a natural language.
I hope this project will amount to something; it can be really useful.
Parent
if you like this... (Score:4, Informative)
Re: (Score:2, Informative)
Re:if you like this... (Score:4, Informative)
Parent
Re: (Score:3, Interesting)
However the real nail in the coffin is that the fundamental algorithm used to generate the song varies widely from one language to another, thus no real comparison between langu
One task that isn't on there (Score:5, Funny)
Re: (Score:3, Funny)
Hooker::Transactional->get_last->rollback;
Dude, CPAN has EVERYTHING!
Re: (Score:2)
Re: (Score:3, Funny)
I mean, was interested in how you would do it in Perl, for curiosity's sake....
>>
There's more than one way to do it.
Should I be impressed? (Score:4, Insightful)
The site has absolutely no real content. There are only a couple of pages on the whole site. The most advanced thing found there is something along the lines of how to open a file with mIRC scripting [rosettacode.org] (no C/C++/Java) and that bash scripts (usually) start with #!/bin/bash [rosettacode.org]. Oh, please. Should I be impressed?
Re: (Score:3, Insightful)
The firehose will help with things like this.
I agree it was empty and its implimentation feels flawed, but it gives a baseline for thoughts other people may be having.
I know *I* have been thinking about this since I saw it and how it should/could be once filled.
It gets a thumbs up from me.
Been Done (Score:3, Informative)
It's already been done. Planet Source Code [planetsourcecode.com] does this already, and it's been around for ages. You can find code examples and complete projects.
Then for projects in the .NET set there are a number of online translators that do C#VB.NET. Very good for moving code between different types of projects.
Now, something that would be truely useful would be a service that would do translations from a wider variety languages.
Re: (Score:2, Informative)
Re:Been Done (Score:4, Informative)
The quality of the writing itself is pretty bad, too. People who are purporting to teach you something ought to be a bit more... well... literate.
Neither am I inclined to be overly impressed when a site throws 175+ JavaScript and CSS errors in Firefox in just the first 2-3 pages. (I didn't bother counting the errors after that point.)
Parent
Will they support these programming styles ?!? (Score:3, Funny)
Couldn't find it... (Score:2)
In a more focused form (Score:4, Informative)
http://pleac.sourceforge.net/ [sourceforge.net]
But... (Score:3, Insightful)
AC: Stupid article, the guy could have used Haskell and solved his problems
BB: But maybe he didn't know Haskell?
AC: Then he deserves get fired!
Re: (Score:3, Insightful)
An old saying: "Jack of all trades, master of none."
This is true for programming as well. You can aquire a deep understanding of a few languages, or basic survival skills in dozens. Aquiring a deep understanding in dozens of languages is a truly exceptional feat.
I agree that it's difficult to acquire a deep understanding of most languages. One can study Java and all its related libraries and frameworks for years and still not learn it all. Indeed, my last job was as a Java programmer, and whilst I'm pretty familiar with several web frameworks, libraries and GUI toolkits, I have little knowledge about, say, the SecurityManager class, or J2ME, or JMS.
But on the other hand, I disagree that a deep understanding of a single language is more useful than a working knowle
Akima's infamous spline? (Score:3, Interesting)
That's one thing I want to see rewritten in several different languages.
Just so I can make sense of the damn thing and I won't look at my call to ITPLBV() and wonder, "What the fuck does THAT do?"
Re: (Score:2)
And what standard for psuedocode are we going to use? I once worked for an old-fart IMB 360 assembly language programmer turned CTO, and for a while he had us (I'm not making this up) using a program that used a psuedocodish language to produce flowcharts, which could then be used to document programs written in a 4gl (Progress). He did not see the irony or humor in this.
Re: (Score:2, Informative)
Re:Right tool for the job (Score:5, Interesting)
>>>I see this ending up as an effort to shoehorn concepts unique to one language to another language (building web sites in COBOL *shiver*).
I once saw a series of cgi-bin routines written in Fortran-77 because that's what the web-site designer knew, and the schedule was too tight for her to learn Perl in time. (for those of you who started programming after compiled languages gave way to Python/Perl/Ruby/WombatCode6000, get a copy of G77, and try to compare two strings of different lengths) It's no big deal; given enough time one Turing-complete language can accomplish the same work as any other Turing-complete language. It's just the degree of pain you're willing to endure that's the limiting factor.
As for the F77/cgi-bin programmer, She's a full professor now (though not in Comp. Sci, alas),
Parent
Re: (Score:3, Funny)
In fact, K&R presents a complete Greet interpreter very early on.
Re: (Score:3, Informative)
Why?
Your C-language for-loop example uses the same crappy example as nearly every crappy text of the "learn C in 7 days [assuming you already know BASIC)" genre. Giving the first example this way --- as "a for-loop is something that counts, here's how you make it count" is