Weekly Edition Return to the Press page |
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News)
Not the Gentoo Weekly News has an interview
with Amarok developer Mark Kretschmann. "Mark Kretschmann: I make no
secret of being a very strong Ruby supporter. In fact I even consciously
forced Ruby to be a hard dependency of Amarok; partly for technical
reasons, partly simply for using my leverage to promote this language
more. For me Ruby programming was an eye opener: it's so smart and
wonderful on so many levels, and yet easy to learn. I tend to be vocal
about such things, and I openly fight Python (which is of course the
antichrist) wherever I can. Give Ruby a try, it's just a work of art, and
actually useful. I use it whenever I'm not forced to use C++, and I'm even
known for my wilds plans to rewrite part of Amarok in Ruby. Maybe with
Amarok 3.0, we'll see :)"
(Log in to post comments)
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 8, 2008 21:55 UTC (Fri) by tjc (subscriber, #137) [Link] > I openly fight Python (which is of course the antichrist) wherever I can. I'd like to see a reasonably unbiased comparison between Python and Ruby. Every one I've read has been pimping one and dissing the other, either overtly or on the sly. I know Python well enough to know that I really like it, but I don't know Ruby well enough to make a fair comparison. Anyone out there without religious affiliation who can make a reasonable comparison?
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 8, 2008 22:41 UTC (Fri) by sbergman27 (subscriber, #10767) [Link] Well, I prefer Python. So don't be surprised that the random thoughts I throw out here favor it. But I've used both. They are both dynamically typed languages and have much similarity with each other. In the Python culture being "explicit" is strongly preferred. Ruby fans tend to like some implicitness. Ruby looks a bit more like Perl. There are tons more libaries and support for things like dbus, beagle, tracker, etc. for python. (Just do a "yum list" or whatever and grep for ruby and python. There *is* no comparison. (I find this to be a significant point in my work.) If you are doing web development, Rails is more popular than all the Python based frameworks put together. But in my opinion, Django toasts Rails for quality and good design. Outside of web development, python is used a lot more and Python programmers are in a lot greater demand. Python runs circles around Ruby for speed. But neither is a race horse. Sometimes, the speed of the language is important, and sometimes not. Ruby has a JVM based runtime "on the way", but it's been "on the way" for years, and last I tried it, the performance didn't seem that great. With python, you have Iron Python (which is quite fast, I hear) for .Net integrategration. And Jython, which gives you access to the world of java class libraries, but is always a release or two behind CPython. Rails popularity cannot be denied. (Just go to Amazon and type "Ruby On Rails" in the search bar.) But I suspect that if it *weren't* for rails, people would be saying "Ruby? What's Ruby?"
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 9, 2008 17:22 UTC (Sat) by rfunk (subscriber, #4054) [Link] Most of Ruby's libraries are in gems rather than in distribution packages, and gems don't seem to work well as distribution packages. JRuby is pretty mature and fast now. And if you want .Net there's IronRuby too. It's true that Rails has driven the rise of Ruby, but personally after being part of that wave I'm more impressed with Ruby than with Rails.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 9, 2008 17:27 UTC (Sat) by nas (subscriber, #17) [Link] Some thoughts from someone who knows Python quite well. I think he's relatively unbiased, however.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 9, 2008 19:27 UTC (Sat) by and (subscriber, #2883) [Link] I'm also more familiar with python, but the speed argument doesn't seem to be valid anymore. Benchmarking the same two scripts on contemporary interpreters on my decidedly non-contemporary 800MHz Athlon yields: and@glotze:~> python -V Python 2.4.4 and@glotze:~> time python sieve.py 300000 > /dev/null real 0m1.121s user 0m1.092s sys 0m0.032s and@glotze:~> ruby -v ruby 1.8.6 (2007-09-24 patchlevel 111) [i686-linux] and@glotze:~> time ruby sieve.rb 300000 > /dev/null real 0m1.579s user 0m1.568s sys 0m0.008s (yeah, I know python 2.5 is out, but debian stable and gentoo still use 2.4 per default)
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 11, 2008 14:23 UTC (Mon) by smitty_one_each (subscriber, #28989) [Link] It's dated: Oct 25 2002, 3:59 pm Possibly a good template for subsequent research...
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 8, 2008 23:13 UTC (Fri) by zooko (subscriber, #2589) [Link] disclaimed: I'm biased towards Python. Ruby may be a better language. Or it may not be -- I'm not entirely sure. But Python has a richer library of mature tools. This is the deciding factor for me, currently when I choose to start a new coding project. I don't just mean the Python Standard Library, although it is good. I mean also the CPython interpreter, and the many, many mature, high-quality, well-tested open source Python tools out there such as the Twisted framework, and, well, just too many to name. See http://pypi.python.org for starters, or just type "<PROGRAMMING TASK YOU WANT TO DO> Python" into google. Note that part of the reason for this cornucopeia is Python's long tradition of re-using C/C++ code instead of rewriting it into Python code. Also, of course, the several mature, high quality tools to ease and automate re-use of C/C++ code. ;-) Regards, Zooko
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 9, 2008 0:32 UTC (Sat) by njs (subscriber, #40338) [Link] > Also, of course, the several mature, high quality tools to ease and automate re-use of C/C++ code. Indeed. Ctypes is amazing, and Pyrex, a revelation.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 9, 2008 14:57 UTC (Sat) by Cato (subscriber, #7643) [Link] Of course, Perl's CPAN library of modules is still far larger than either Python or Ruby's - and with Perl 6 it should be easier to use such Perl modules from other languages. It's not just the existence of libraries with Perl, it's being able to type 'cpan -i Useful::Module' on any Linux or Windows box - or in the case of Ubuntu/Debian the most useful ones are already packaged. I think some other languages are doing this as a result of Perl's success with CPAN - the Python Package Index (PYPI link) is a good example.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 9, 2008 17:45 UTC (Sat) by zooko (subscriber, #2589) [Link] Yes, these are some of the most exciting parts of the Python world to me right now:
These were certainly inspired by CPAN and by Ruby's "rake" tool.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 11, 2008 14:26 UTC (Mon) by smitty_one_each (subscriber, #28989) [Link] http://aspn.activestate.com/ASPN/Python/Cookbook/ bears mention
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 9, 2008 1:53 UTC (Sat) by dilinger (subscriber, #2867) [Link] Honestly, I don't understand the "Python is the anti-christ" mentality from Ruby people. When I'm starting a project, I'll use Ruby if I don't need to collaborate with anyone, because it's more fun. I'll go with Python if I feel the need to attract other developers (as Python has *much* more momentum), or if co-workers need to understand it. However, they're both close enough that switching between the two isn't a big deal.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 9, 2008 6:24 UTC (Sat) by kripkenstein (guest, #43281) [Link] I think the "Python is the antichrist" sentiment stems from a sort of sibling envy. Python and Ruby are similar enough to compete for the same 'niche', and Python has been 'winning' in the sense of # of people using it, of libraries, integration with other tools, etc. Some Ruby people resent that, and I can sort of understand them - if Python didn't exist, Ruby might be where Python is now. Still, I hope that the 'antichrist' sentiment is only held by a minority, because it is quite unproductive and inappropriate. Regarding the languages themselves, again, the similarities are fairly big, when you compare them both to, say, C. Perhaps the main practical difference is, as mentioned above, far more support for Python with libraries, development of fascinating projects like PyPy, and so forth. Syntax-wise, the most immediately-noticeable difference is Python's enforced indentation, which most people either love or hate. Personally, I like it; both Python and Ruby do well to remove the curly braces popular in other languages, but only Python goes one step further and also removes the need to close indentations with "end" and so forth. Anything that makes code shorter is good in my book. There are lots of other small syntactical differences, that people argue about quite a lot online, but again I'd stress the similarities.
humor detectors b0rked Posted Feb 9, 2008 16:40 UTC (Sat) by eean (guest, #50420) [Link] I'm amazed by all the comments here. Apparently Mark missed that calling a language the "antichrist" has become a serious way to talk about programming languages. You guys realize that the term Antichrist refers to an embodiment of pure evil? The being in Christian mythology that will bring about the end of the world? Mark was obviously exaggerating a bit. To some extent its the LWN's editors wanting to stir something up for picking this part of the interview (is a C++ developer's opinion on Ruby vs. Python that pivotal?), but it's everyone elses fault for not reading it in the full laid-back context.
humor detectors b0rked Posted Feb 9, 2008 19:40 UTC (Sat) by and (subscriber, #2883) [Link] > You guys realize that the term Antichrist refers to an embodiment of > pure evil? Only for christians, and of these probably mainly for those of the american variety. I see this statement in contexts like this more as an winking way of expressing one's affiliation.
humor detectors b0rked Posted Feb 11, 2008 7:55 UTC (Mon) by drag (subscriber, #31333) [Link] I donno. I would figure that almost all Christians, or those who belong to more or less conventional variations on the faith, believe that Satan is pretty much evil. As evil as evil gets. It's certainly a interesting term. Something that has more depth to it then just 'the embodiment of all evil'. Antichrist refers to the fact (take it the bible context, not saying that you or anybody else assumes it's fact) that the 'Antichrist' is not 'opposite of Christ' or anything like that. It's that he wants you to think that he is your savior, that he _is_ Jesus. The Antichrist is a trick to make you think that he is there to save you from the bad things that happen in the world. So in the book of revelations the Antichrist comes shining down from heaven into Jerusalem. He comes all floating down, all shining with lights and all that sort of thing. He performs miracles, stops armed conflict, heals the sick, feeds the poor, etc etc. All in a fairly supernatural (magical-seeming) way. Pretty much what everybody expects Jesus or $favorite-deity-thingy to do in the end times. Since most of the world is ignorant of all of this because they don't know the bible or follow whats going on then they all fall in line behind this false savior. Hence, the Antichrist. Tricking people into following him rather then the true Christ. So in a sense what is he actually saying, in a obviously tongue-in-cheek manner, (and whether he realizes it or not) is that Python programming language is in fact a false idol.. A deception perpetuated on the Linux-going public. That Python promises to be what Ruby is, and is able to perform most of the tasks that people think that a OO language should be able to do. However the fact (according to Mark "Markey" Kretschmann) is that Python is deceiving people, turning them away from the one true Ruby. The Ruby that will ultimately save them and provide them the river of knowledge that will lead programmers out of suffering ignorance and into a thousand years of fairly productive learning and general success. Darn that old Antiruby, Python.
humor detectors b0rked Posted Feb 11, 2008 14:35 UTC (Mon) by smitty_one_each (subscriber, #28989) [Link] In a word: 'hyperbole'. You can be a famous hacker, and you can call an operating system "utter crap", but the real metric is money, irrespective of any architectural purity arguments you'd want to make. Programming language tensions are the same argument in miniature. Continuing the oddly apropos religious thread, the Python/Ruby tension boils down to religious denomination X picking on denomination Y about sacrement Z. Note that, by the time you're on a JVM, CLR, or parrot, you're really just thumb-wrestling over choice of syntactic sugar at the parser level. Aren't Real Programmers supposed to see past the tool-fetishism and focus on the results, anyway?
picking part of the interview Posted Feb 12, 2008 18:47 UTC (Tue) by rfunk (subscriber, #4054) [Link] I read the interview, and it was mostly content-free unless you care about beer preferences. This was the most interesting part of it.
Python/Ruby Posted Feb 9, 2008 17:52 UTC (Sat) by rfunk (subscriber, #4054) [Link] Well, I'm probably more "religiously affiliated" than you'd like, but I try to be fairly objective about these things.... I was a Perl and C programmer for a long time. I've played around with Python a bit, and kept getting annoyed by its object model. It's inconsistent, and required using class methods where I expected to be able to use object methods. Then there's the seemingly pointless dichotomy between tuples and arrays; and the limit of one expression inside a lambda also seems pointless. I also don't like Python's inability to be programmed functionally; side-effects abound, and it forces separating every little action into a temporary variable and another line. I don't care about the syntax. Much. Significant indentation is fine, though in Python I do tend to miss having some sort of definite markers to show where blocks end. Then I discovered Ruby, and finally found a language with a complete object model -- *everything* is an object. Ruby is the first language I used where the OO was complete enough to be both sensible and useful. Methods can be quickly and easily chained together (though watch out for potentially nil objects). Functional programming is easy, though not required. And I've only scratched the surface of what Ruby is capable of; its meta-programming capabilities give quite a bit of power. Basically Ruby has Lisp's power, Smalltalk's OO, Perl's programmer-friendliness (or better), but it fixes most of the problems of all of those. Python has more popularity now because its popularity started earlier (and because Perl stagnated), and there are definitely major surface similarities between Python and Ruby (dynamic, OO), but Ruby is capable of so much more. As far as I'm concerned, Ruby's biggest problems are its slowness and its library immaturity. Improving the speed is a major goal of the developers now, and the next version should have much better speed; in addition there are other implementations with better speed, including Rubinius and JRuby. The libraries are quickly catching up to Python, and if you use JRuby you get the benefit of Java libraries.
Python/Ruby Posted Feb 9, 2008 21:02 UTC (Sat) by tjc (subscriber, #137) [Link] > the limit of one expression inside a lambda also seems pointless. > I also don't like Python's inability to be programmed functionally; side-effects abound, and it forces separating every little action into a temporary variable and another line. Are either of these issues addressed by Python 3.0? I've googled around a bit, but not found anything conclusive.
Python/Ruby Posted Feb 10, 2008 0:41 UTC (Sun) by jmtapio (subscriber, #23124) [Link] I also don't like Python's inability to be programmed functionally; side-effects abound, and it forces separating every little action into a temporary variable and another line. Care to elaborate on that? What is missing from Python that _prevents_ functional programming? And Python does not _force_ opening up one-liners, but it does promote clear code. Just google up "obfuscated python" and there will be a plethora of code examples where "every little action" is not separated.
Python/Ruby Posted Feb 10, 2008 16:09 UTC (Sun) by rfunk (subscriber, #4054) [Link] Um, you quoted some, and I mentioned another you didn't quote. 1. Lambdas are limited to a single expression. 2. Too many operations have side effects -- they change their argument rather than returning the changed version leaving their argument unchanged. 3. This in turn requires lots of separating of operations and defining temporary variables if you don't in fact want the original thing changed. There's actually a web page I found on programming Python functionally, and it mentions Python's abilities and limitations in that area (as well as giving some workarounds). http://scott.andstuff.org/FunctionalPython (For example, it mentions Python's lack of a ternary operator; tricks with and/or are definitely obfuscation.) Another one that gets more to my points, but from a Pythonists's perspective: http://withoutane.com/rants/2007/01/embrace-the-heresy "But if you try to write your whole program in a functional style, you always seem to be going against the grain of the language." Take a look at the operators (well, methods) in the standard Ruby classes, and you'll see that support for clear, concise functional programming abounds, with no need for workarounds or obfuscated-looking code. Ruby combines OO and functional programming nicely and elegantly, without forcing functional on you. I do notice, however, that Python has added more support for lists than it had the last time I delved deeply into it.
Python/Ruby Posted Feb 10, 2008 21:30 UTC (Sun) by jmtapio (subscriber, #23124) [Link] With regards to lambda I disagree. I find there are very few cases where even using a lambda at all is an advantage over giving the function a name. And if you are going to be using statements within the function, why not go all the way and define that function with a statement? After the introduction of list comprehensions several years ago I personally stopped using lambdas, and I do prefer a somewhat functional style myself. If side effects bother you, don't use functions that operate in-place. For example instead of mylist.sort() do sorted(mylist). Note that you do not have to do something like templist = mylist[:]; templist.sort() as would have been the case a few years ago. I think it is a good thing for a language to have both types of operations available because sometimes there are good performance justifications for using in-place-algorithms. The first example URL that you gave seems to point to a quite old page. The examples there would have been valid for some really old Python versions. The first example could nowadays be written like this: [x for x in [1,2,5,6,8,12,15,17,20,23,24] if x % 2 == 0] And calculating the sum of a sequence can be done by callind sum(sequence) without defining any functions or without any temporary variables. I would like to again reiterate that Python does not _prevent_ using functional style and it does give quite a lot of syntax and tools to make it easier, but fundamentally there are always the procedural and object oriented parts of the language available as well. And the generic mentality among pythonists is to avoid dense hard-to-read code, even if it were mathematically beautiful. I used to write much more functional code in the past until I got more interested making code easy to read for non-wizard people. (For example, it mentions Python's lack of a ternary operator; tricks with and/or are definitely obfuscation.) Python does have a ternary operator. >>> 'foo' if True else 'bar' 'foo' >>> 'foo' if False else 'bar' 'bar' Ruby is often mentioned as better than Python based on something that Python did not support in the past. For some reason language knowledge travels very poorly between the two camps and that has in the past years caused a lot of unnecessary rumors and unfounded claims of inferiority/superiority. (I am not accusing you per se, I'm just trying to note that a lot of people over the years have brought up the same points you did, and most of them have been "fixed" years ago in Python.)
Python/Ruby Posted Feb 11, 2008 1:23 UTC (Mon) by ikm (subscriber, #493) [Link] > Python does have a ternary operator. > >>> 'foo' if True else 'bar' >'foo' > >>> 'foo' if False else 'bar' > 'bar' Which version of Python is that? The one I have right now as a system default (2.4.4, Debian sid) barfs at the given syntax.
Python/Ruby Posted Feb 11, 2008 6:52 UTC (Mon) by jmtapio (subscriber, #23124) [Link] That syntax was added in 2.5.0 (released in September 2006). It is in Debian stable (python2.5) but the default version still has not been migrated even in unstable.
Python/Ruby Posted Feb 11, 2008 11:08 UTC (Mon) by drag (subscriber, #31333) [Link] Python 2.5 is certainly a good thing. I am Debian user and habitually specify python2.5 when working on my own stuff. Hopefully Python 3000 will be even better.
Python/Ruby Posted Feb 11, 2008 14:43 UTC (Mon) by smitty_one_each (subscriber, #28989) [Link] >language knowledge travels very poorly Ignorance is power, when deriving counter-arguments. ;)
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 9, 2008 22:29 UTC (Sat) by Nelson (subscriber, #21712) [Link] What's to compare? They are both Turing complete, the can both express the same programs.
Programming is hard, I think it was Knuth that said that. As I get older, I really appreciate that sage wisdom of that statement more and more. The language seems like such a tiny part of that after a while. I just can't get that excited over the differences in Ruby and Python, I can't think of a problem that one makes substantially easier than the other.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 10, 2008 14:10 UTC (Sun) by oak (subscriber, #2786) [Link] > Except for a few really great Ruby guys and a couple of really great Python guys the vocal parts of community at large, in my opinion, seems to think that their tool is a programming panacea in spite of no really substantial projects of size really being done in either language.. How large should be a program of a substantial size be? There are for example (UI) applications done in Python with > 100 K-lines of code (which corresponds to significantly larger C-program), I think both in Gtk (e.g. Gramps) and Qt. Python is the programming language in the latest Civilization (IV) game[1]. Zope CMS is done in Python and there are several projects done on top Zope also (e.g. Plone). And it's not the only one, there are even Python game programming environments like: http://www.panda3d.org/
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 10, 2008 15:12 UTC (Sun) by Nelson (subscriber, #21712) [Link] I knew when I said that I'd probably take some flack. There is a lot of substantial and important code written in both in use a lot of places.I think what would be more compelling is a very mainstream app written in either language. I was trying to suggest looking at the fruit to compare the greatness. Maybe the most compelling is Anaconda, that's some python that millions of people have used, whether or not they know it. i know large programs have been written in both, I think large size in complexity/code as well as large size in use is what I meant. If they are so much better than, say, C, then why isn't a really common and important part of GNOME or KDE or Firefox or OpenOffice of GIMP written in them? Or some other app? GNOME-Menu could be python or ruby. Surely there must be a substantial advantage if language X is so much better, or are these just vocal community folks that don't produce apps like that? Even the guy who started this said he might use Ruby in Amarok simply to force Ruby in to more common use, why not bang out the whole app in it if it's so great. If they are such great languages (and I like them both, they are great, for some things) then why would that killer always or only be app be a web app (still neither has anything on PHP there..) in my mind, that'd be the first major limitation and strike, if your language is only good at producing little web apps, then that seems kind of lame when talking about the greatness of the languages, especially compared to so many that do so much more. Is there a good Ruby IDE written in Ruby? How about Python, I know a some things like that have been written but I've never seen it deployed for crap, it seems my wxPython from OpenSuse or Fedora is never quite good enough or something.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 10, 2008 21:28 UTC (Sun) by oak (subscriber, #2786) [Link] > If they are so much better than, say, C, then why isn't a really common and important part of GNOME or KDE or Firefox or OpenOffice of GIMP written in them? For all of these the reasons should be fairly obvious. Gnome and KDE: I think the main thing is platform bindings, if the platform would be done in some given higher level language, how you would provide bindings for lower level languages? As to Firefox, JS virtual machine and HTML rendering are performance critical functionality. Writing VM in higher level language could also have "interesting" memory usage issues... I think performance are also issues why OpenOffice and Gimp *core* functionality is in C. Note that except for Firefox (which extension language is quite understandably JavaScript), all of your examples provide Python bindings. In Gnome you can e.g. do panel applets in Python. You find higher level languages where the ease of development and code maintainability are more important than their performance. Performance includes startup speed which on higher level languages is higher due to need to load more things upfront. For long running services, startup speed doesn't matter that much. Also, on servers you don't run that many processes and you just add memory if it's needed whereas on Desktop too many services taking more memory starts to be noticeable. That's why higher level languages are more used on servers and in education. > if your language is only good at producing little web apps, then that seems kind of lame when talking about the greatness of the languages, especially compared to so many that do so much more. Little? What you consider little? 10 KLOCs? 100 KLOCs? Millions of lines of code?
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 11, 2008 18:06 UTC (Mon) by Nelson (subscriber, #21712) [Link] There are GNOME and KDE bindings for Ruby and Python and there are some little things done in Python, I'm not aware of any Ruby applets though. I'm not aware of any really standard and common GNOME or KDE things written in Python, just some more fringe kinds of elements, like gDesklets.So basically, if memory and speed are of a concern, both of these languages may be unsuitable. The other thing that kind of rubs me with this kind of advocacy is that "ease of development" is placed high on the list but something as complex as a Browser or OpenOffice are sort of out of their range. Is it just me or is there a certain logical flaw to that? Do these languages really ease development if they are only used on a subset of applications that don't require start up speed, frugal memory usage, or any highly optimized portions? It seems to me that they "ease development" on a set of tasks that are pretty easy to begin with (not that that isn't a worthy use) which kind of begs the issue if you ask me. I'm not trying to be too argumentative but if we were to try and compare the relative "power" of Ruby and Python a good place to start might be by looking at the set of applications they are capable of being used for and those which they are ill-suited and looking for overlaps and exclusive portions.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 10, 2008 18:00 UTC (Sun) by zooko (subscriber, #2589) [Link] Yes, PyPy can use LLVM for a backend. Go have fun!
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 10, 2008 21:28 UTC (Sun) by muwlgr (guest, #35359) [Link] Both Python and Ruby, at least in their original native-C implementations, are pretty poorly thought out in regard to multithreading. Multicore CPUs are steadily becoming things of today, so initial design flaws of these languages are quite alarming as they are going to make them useless in the new world. AFAIK, their Java&.Net rewrites (Jython/JRuby/IronPython/Ruby.Net) use underlying threading facilities so they have more chances to succeed. But such reimplementations significantly change their original class/modules system also to adapt it to the underlying platform. As well this reduces their "dynamicity" in some extent. As to "dynamicity", Ruby feels much more flexible and ductile than Python (the whole Rails framework is largely built upon these features). But the resulting "overly-dynamic" programs often consume more CPU time and RAM to run than equally-functional but somewhat dumbed-down and task-specific implementation in Python. And the last my word would be about Amarok. I tried to use version 1.4.7 as provided by Ubuntu gutsy, and it has been capable to eat the whole my CPU (Duron 1800) just sitting idle. You know, it likes to redraw a matrix of small grey/blue squares on its spectrogram indicator. Completely useless bling, but this keeps Amarok and X server busy all the time. I would like this to be turned off by default. Else, so far I prefer xine&mplayer as much lighter solutions.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 11, 2008 2:09 UTC (Mon) by ikm (subscriber, #493) [Link] > Both Python and Ruby, at least in their original native-C implementations, are pretty poorly thought out in regard to multithreading. Multicore CPUs are steadily becoming things of today, so initial design flaws of these languages are quite alarming as they are going to make them useless in the new world. Multithreading is mostly to gain more speed, and these kind of languages are not really created for speed. If you waste your CPU time already, you can as well waste some wall clock time as well -- after all, you're supposed to waste just a neglectible amount of time anyway, or else it'd be stupid to write the program in a scripted language in the first place. The only realistic use for multithreading in a scripted language I can think of is to run some other process/blocking syscall and wait for it to finish, and these tasks are handled quite alright already. Otherwise, if some guy would ever proudly tell me that he had successfully parallelized his Python program and it now runs two times faster, I'd be rolling on the floor laughing, even with tears in my eyes, because it's just hilarious!
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 11, 2008 19:31 UTC (Mon) by muwlgr (guest, #35359) [Link] At the same time, other systems using portable bytecode (Java, .Net) throw a lot of efforts into JIT compilation and runtime optimization (like Hotspot JVM), as well as multithreading performance (have a look into JDK/JRE sources, you'll notice a lot of low-level tricks there). What make their developers do so ? In fact, reimplementing your dynamic language in Java instead of C often allows you to use these processor- and system-specific optimizations implemented by JDK/JRE developers itself.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 12, 2008 1:07 UTC (Tue) by ikm (subscriber, #493) [Link] Start with JIT first, then do proper multithreading. Guido haven't done the first, neither he cared much about the second -- apparently, the speed didn't matter to him. For me, it's a sign of a sane person, a person who understands his objectives. After all, no one is writing JIT compilers for shell scripts. Actually, I think shell scripting is an outstanding example of what scripted languages are good for; not that I like shell syntax, implicit vars etc -- but the idea is just right.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 11, 2008 16:40 UTC (Mon) by southey (subscriber, #9466) [Link] You may want to check out "The Computer Language Benchmarks Game" at http://shootout.alioth.debian.org/
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 9, 2008 3:42 UTC (Sat) by kjp (subscriber, #39639) [Link] No, perl is the antichrist. And I'm never going near it - or anything inspired by it- again.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 9, 2008 5:48 UTC (Sat) by nicku (subscriber, #777) [Link] No, perl is the antichrist. And I'm never going near it - or anything inspired by it- again.Okay. Can you give a few details explaining why the Perl language is inherently the antichrist? I enjoy good Perl programming. As with all languages, there are ways of abusing it.
Oh, it's easy Posted Feb 9, 2008 10:31 UTC (Sat) by khim (subscriber, #9252) [Link] Can you give a few details explaining why the Perl language is inherently the antichrist? Oh, it's easy, but it's not in any details. Design details can not make the language "antichrist" - no matter how ugly. It's design principle that is evil: the infamous "There is more than one way to do it". Why it's evil ? It's easy: if you are writing something to "use and forget" then "there is more than one way to do it" is good principle: I like that in most GUI programs you can use menus, shortcuts, sometimes mouse gestures and so on. You choose your own style and can forget about other approaches. Programming languages are different. They use constructs to write text. Poems, essays, novels. The fact that there are happy accident (computer can read and execute them) is irrelevant. The main consumer is the next programmer, not computer. Computer is your secretary, stenographer, not consumer. And in this case "there is more than one way to do it" is disaster: every programmer should learn approaches of all other programmers or else he or she can not understand the code. You can try to create lingua franca this way: just combine English, Spanish, Mandarin, Arabic, Hindi, Bengali, Portuguese, Russian, Japanese, German and two dozen other languages and allow the speaker to choose. Is this the way to greatness ? Not at all: you'll just make the combined language unusable. But this is exactly what the Perl does! More: it's not an accident but design philosophy! Gosh. I have nothing against having two or three ways to something - little variety helps in a lot of cases. But to raise disparity and ambiguity to the rank of design philosophy ? Ugh. That's "antichrist".
Oh, it's easy Posted Feb 9, 2008 16:17 UTC (Sat) by rsidd (subscriber, #2582) [Link] I entirely agree with what you say about computer languages. But as far as human languages are concerned: the French language is tightly controlled by the Académie Française. It has a smallish vocabulary and well-defined rules of grammar and pronunciation. The English language has no controlling authority and freely borrows from languages from all over the world -- so that the Oxford English Dictionary has 20 volumes and still doesn't cover everything -- and grammatical rules range from incomprehensible to non-existent. How many people in the world speak English? How many speak French? How many speak Esperanto? Similar to English, Perl is still the most widely used of the scripting languages, but I think that's a first-mover advantage. If Python had appeared first, nobody would have been impressed by Perl. You are quite right that "there's more than one way to do it" is a terrible idea for programming languages.
More than one way to do it... Posted Feb 9, 2008 16:56 UTC (Sat) by im14u2c (subscriber, #5246) [Link] Let's ban C then... #include <stdio.h>
int times_two_a(int x) { return x * 2; }
int times_two_b(int x) { return x << 1; }
int times_two_c(int x) { return x + x; }
int main(void)
{
int i, j;
char buf[3];
for (i = 0; i < 10; i++)
printf("%d times two is %d\n", i, times_two_a(i));
i = 0;
while (i < 10)
{
j = times_two_b(i);
printf("%d times two is %d\n", i, j);
}
i = 0;
do
{
sprintf(buf, "%d", i);
fputs(buf, stdout);
fputs(" times two is ", stdout);
sprintf(buf, "%d", times_two_c(i));
fputs(buf, stdout);
} while (++i < 10);
return 0;
}
More than one way to do it... Posted Feb 9, 2008 20:52 UTC (Sat) by tjc (subscriber, #137) [Link] The different ways of doing the same thing in your example arise in part from properties of arithmetic (addition and multiplication) and the binary representation of numbers (bit shifting). Granted, "for" loops are syntatic sugar, but a useful and common idiom.
More than one way to do it... Posted Feb 9, 2008 21:08 UTC (Sat) by im14u2c (subscriber, #5246) [Link] Surprised you didn't jump on the opportunity to point out that the latter two loops are flawed, in part because they aren't idiomatic... ;-) I was actually making two points: The first is that allowing for many ways to approach a problem can be valuable, and second is that mindlessly straying from idioms makes it easy to make mistakes and harder for others to understand your code. It's like goto: It is very easy to use it to turn your code into spaghetti. At the same time, it's probably a mistake to outright ban its use, as there are times when the alternative is less clear. (Escaping a nested loop comes to mind.)
It's not a mistake to ban goto... it's not a mistake to keep it... Posted Feb 10, 2008 7:53 UTC (Sun) by khim (subscriber, #9252) [Link] If there are two (or more) ways to do something (like for and while cycles in your samples) but they are used often in real programs - it's not a big deal: reader will remember both and it's easy to understood both. The constructs usable once per a blue moon must be rejected unless they are doing something which will be impossible or very-very hard to do otherwise. Now about goto: while it's not very useful it's still quite simple to understand because we have "goto in disguise": return. But of course plain old goto is so rare that ban makes sense. But any choice must be justified from reader's position, not from writer's one. This is not how perl chooses the constructs...
It's not a mistake to ban goto... it's not a mistake to keep it... Posted Feb 10, 2008 11:57 UTC (Sun) by filipjoelsson (subscriber, #2622) [Link] The last time I saw goto in serious use (where last is defined as most recent instance of coding - not last time I viewed ancient code), was in some DirectX example code (shipped with DirectX in ca 1999 - so it is a half way ancient, and it is MS being responsible). Anyway, the way they used it was to skip to a dtor-like section of a function. Not particularly elegant, not particularly object oriented, but not outright heresy either - which, since I thought it _was_ outright heresy confused me. Ever since, I have been trying to solve it in more elegant ways (using C++). Nested ifs, functors, exceptions, you name it - it's not very elegant either. Anybody know a better way to free resources in a C++ function when failing? (I tend to think the nested ifs are the least evil - but they do eat the line width at an alarming rate.) EORant ;)
It's not a mistake to ban goto... it's not a mistake to keep it... Posted Feb 10, 2008 13:48 UTC (Sun) by nix (subscriber, #2304) [Link] The Linux kernel uses goto in this manner all the time. It's useful if you can't do it by splitting the non-ctor-dtor stuff into a separate function.
freeing resources Posted Feb 11, 2008 3:26 UTC (Mon) by pflugstad (subscriber, #224) [Link] Are you looking for RAII?I use it quite often for things like mutexes, but it can be used in many other situations - any time you hold a resource in a function that must be cleaned up when the function exits, including when throwing an exception. It's a fairly common design pattern for C++ these days - I think I started seeing it a year or two ago...
freeing resources Posted Feb 11, 2008 8:19 UTC (Mon) by nix (subscriber, #2304) [Link] In C++ it's probably two decades old: I know it was landing in published textbooks ten years ago. I didn't see it in C outside the Linux kernel before about 2004.
Oh, it's easy Posted Feb 9, 2008 18:02 UTC (Sat) by nix (subscriber, #2304) [Link] The Academie Francaise likes to think that it controls the French language. (This is about as accurate as saying that the Pope controls the world's Christians.)
Oh, it's easy Posted Feb 9, 2008 19:48 UTC (Sat) by jordanb (subscriber, #45668) [Link] The Acadamie has about as much control over how French people speak and write as the MLA has over Americans, and while English has a larger vocabulary, French has a much larger collection of tenses so that comparison isn't at all relevant. I don't know how useful it is to compare a formal programming language to a natural language. ALL natural languages are as much a collection of cultural references, idiomatic expressions, notions, subtexts, and connotations as they are a grammar framing a set of semantics. That is because that is how humans naturally communicate with eachother, but it is very imprecise and not at all suitable for a machine interface. I think setting out to try to 'deformalize' a computer instruction language to make it more like a natural language is, essentially injecting imprecision and complexity into it such that the semantics eventually are no longer reasonably deterministic and the behavior of the machine becomes difficult to control and predict.
Oh, it's easy Posted Feb 11, 2008 4:59 UTC (Mon) by ikm (subscriber, #493) [Link] > How many people in the world speak English? How many speak French? How many speak Esperanto? You know, I speak English not because I love it so very much and want to marry it, but just because I have to, it's better at solving my particular communication problems with the particular audience than other languages are, no matter how simple or hard it is. If I had to pick a language from the same group, I'd rather pick German -- I like the way it sounds. But it's not about choosing a language, it's about choosing an audience which you want to communicate with. With the programming languages, the situation is somewhat different -- while the language is still a way to communicate with other people, they are limited to the people who are involved in the same project, and as such, the less their number is, the easier it is for you to pick the language you actually like. If you're going solo, you can use whatever that pleases you. But if you're joining linux kernel development, you have to do C with the specific coding styles and practices. With spoken languages you're like doing one big project in English, one big project in French, etc. So, yes, it's different. While with spoken languages we aren't really in a position to choose, with programming languages we still can choose, and have criteria of our own.
Oh, it's easy Posted Feb 11, 2008 10:35 UTC (Mon) by forthy (guest, #1525) [Link] Tss, the English language is a lingua franca because the two last superpowers were Great Britain and the USA. So for two centuries, English was spoken by the most powerful nations in the world - no wonder it is now spoken by many people in ex-colonies or allies of these superpowers. France might think it is a superpower, but its century of power was the 18th. It's power is long past. This century will be dominated by China, and you can expect that Chinese will be a lot more important at the end of this century than English. That's just how powers work.
Oh, it's easy Posted Feb 11, 2008 14:52 UTC (Mon) by smitty_one_each (subscriber, #28989) [Link] Your idea may carry out, but keep in mind that key features of English are: -Roman alphabet -atonal speech -massive vocabulary -extensive market penetration Coming 'round to the Department of Unfair Analogies, English==Python and Ruby==Chinese. Not sure what the Rails equivalent for Chinese is, but the sooner they work that out, the better their chances of growing their market share.
[OT] English features Posted Feb 11, 2008 22:50 UTC (Mon) by man_ls (subscriber, #15091) [Link] The roman alphabet was shoehorned into English and it feels -- that is why its devilish pronunciation is a major barrier to learners. In comparison, Spanish, Italian or German are spoken much as they are written, and even French has more or less rigid rules.Not sure what you refer to with "atonal speech", but if you refer to intonation English and Scottish people certainly speak in a highly tonal way. In comparison, the Spanish (from Spain) or the Russians speak with much less intonation fluctuations. It is only in the US and only in certain areas with massive immigration where accents have been washed out. As to vocabulary, English speakers always boast of their ample choice of words, but I believe what you really have is excellent dictionaries. In dictionaries for other, more formalized languages only "official" terms spoken by the majority are collected. The huge amount of slang terms which are produced in any geographically dispersed language is mostly lost on them. In fact the best selling point of English is its almost trivial grammar rules, but you only get to appreciate them when you have learned the thing. So we are left with market penetration, which is of course why we are all learning English like crazy. Not one century ago people were praising French for its expressivity and musicality; at least now we can be honest about it. English (and in particular the US variety) is the language of business and technical endeavors, which is perfectly fine if you ask me.
Oh, it's easy Posted Feb 9, 2008 18:38 UTC (Sat) by nicku (subscriber, #777) [Link] It's design principle that is evil: the infamous "There is more than one way to do it".Yes, though it enables us to write code that meets this aim: "Make it concise, have it explain itself, and document it." All our team's code seems to converge to a very similar style, where conciseness with readability are paramount. But yes, your comments are reasonable. Thank you.
Oh, it's easy Posted Feb 9, 2008 20:17 UTC (Sat) by chromatic (subscriber, #26207) [Link] All our team's code seems to converge to a very similar style, where conciseness with readability are paramount. Yes, but that means that your team members have to be able to communicate with each other, discuss maintainability issues, and agree on some sort of coding standard, else they'll have a lot of trouble writing code -- as if syntax were the difficult part of understanding existing code. (If syntax were the difficult part of understanding existing code, the mantra for comments would be "Comment what the code does, not why.") Apparently devising loose coding standards is so difficult that some people want the language to enforce them.
Oh, it's easy Posted Feb 9, 2008 22:58 UTC (Sat) by krishna (guest, #24080) [Link] And Perl::Critic allows your group to enforce one of those ways. Or not. It's your team's choice, not the language designer's.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 9, 2008 19:08 UTC (Sat) by oever (subscriber, #987) [Link] No, perl is the antichrist.What's so bad about being antichrist? According to wikipedia such anti-Christs (or opponents of Christ) would deny: "that Jesus is the Christ"; "the Father and the Son"; and would "not confess Jesus came in the flesh."which seems like a very reasonable position to take.
the Anti-Christ Posted Feb 10, 2008 18:05 UTC (Sun) by man_ls (subscriber, #15091) [Link] What you cite is "an anti-christ", not "the Anti-Christ". The former is a position, while the latter is another way of referring to Satan, the Devil itself: the embodiment of all which is evil, so it is supposed to be bad. It is a medieval conception with biblical origins (based on fallen angels). Mentioning Satan, the Devil or Hell is offensive in most Christian cults (ranging from mildly profane to positively offensive). In some protestant churches it is likewise offensive to mention God; while it is definitely not in Catholic and other Christian denominations.With "X is the anti-Christ" the meaning is probably not profane, but a way to say that X is an enemy and that it must be actively fought. Since there is no need to fight perl anymore, the anti-Christ is indeed C. QED. :D
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 9, 2008 14:42 UTC (Sat) by lmb (subscriber, #39048) [Link] Whenever I see a seasoned programmer not merely express a preference for a language (which is natural to have, I guess), but a strongly biased opinion and dissing other languages, I know I've meet someone who still is naive enough to believe in silver bullets. The cases where the language chosen makes a really significant difference to programmer productivity are exceptionally rare. Sure, some languages fit certain problem domains better, or have better libraries for given tasks, or you've got this big existing project to interface with. But I'dn't trust a "seasoned" programmer who got hung up about that. A seasoned programmer should be able to program in all of the major languages within at most a few weeks to get upto full speed. That said, everybody knows that the Gods in their infinite wisdom wrote the universe in Perl, and that God is anxiously waiting on Perl6 so he can end all evil and banish the snake and mammon's tempting gems, so we shall be back in paradise.
Amarok is C++ Posted Feb 9, 2008 16:42 UTC (Sat) by eean (guest, #50420) [Link] You know that Amarok is written in C++ right? Mark obviously doesn't believe Ruby is a silver bullet. But thanks for not taking this seriously at least. ;)
The universe Posted Feb 9, 2008 17:29 UTC (Sat) by rfunk (subscriber, #4054) [Link] http://xkcd.com/312/ http://xkcd.com/224/ On the other hand.... http://xkcd.com/353/
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 9, 2008 20:32 UTC (Sat) by TxtEdMacs (subscriber, #5983) [Link] I would not be so quick to hope to banish the snake from the world. In some versions of text from which the old testament was selected; it was the snake that spoke the truth. Hence, the credo that no good deed goes unpunished seems to be the more valid lesson. Therefore, I would suggest less religiosity, let's base our arguments on observable facts. That is, even when they are our deeply held preferences. Remember, we are talking about a scripting language not a panacea to the World's ills.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 12, 2008 15:18 UTC (Tue) by ikm (subscriber, #493) [Link] > I would not be so quick to hope to banish the snake from the world; it was the snake that spoke the truth Keep the python.
Language productivity Posted Feb 10, 2008 18:41 UTC (Sun) by man_ls (subscriber, #15091) [Link] But it is a proven truth that, while programmer productivity measured in lines of code is more or less constant in any language, the functionality provided does indeed change a lot depending on the language. It takes more lines to write something in low-level languages than in high-level languages. That is why high-level languages exist, and why assembler is only used rarely nowadays.If you want hard numbers, data has been tabulated from function point statistics. Now, function points may not be as precise as they are often sold, and these measures vary a lot; but they definitely give some perspective. Even if a good programmer is proficient in any language in a few weeks, writing web applications in low-level languages or writing graphic applications in assembler is madness. And just try to write a hello-world in Brainfuck. Now, all of these languages (Ruby, Python, Perl) are in a similar league, so it may be hard to see the differences; but your blanket statement: The cases where the language chosen makes a really significant difference to programmer productivity are exceptionally rare.gives the wrong impression, even if you probably know better. Language does make a huge difference in productivity and it should be chosen carefully.
Language productivity Posted Feb 10, 2008 21:15 UTC (Sun) by i3839 (subscriber, #31386) [Link] You may be right if you only consider the time coding something. But the time spend writing code is in general only a small part of the whole thing. And that SLOC/FP count thing is silly, because it doesn't consider how much time it takes to write those lines. Many lines of simple code is often better than less, more complex lines of code, and takes less time writing. When writing something like a web application, it doesn't really matter what language you use, what's important is what framework you use. And that's true for most things, existing libraries and frameworks are the ones reducing the amount of work most, not the language choice itself. So the huge difference comes from there. I don't say that language choice doesn't matter, it does, but it's much less than the impact of the included standard libraries and easily available libraries. I wonder if there are Python bindings for C...
Language productivity Posted Feb 10, 2008 21:40 UTC (Sun) by man_ls (subscriber, #15091) [Link] I don't say that language choice doesn't matter, it does, but it's much less than the impact of the included standard libraries and easily available libraries.In that you are completely right. Witness Arc's challenge: the inventor of this new language, Paul Graham, is challenging people to come up with a shorter version of a barebones web application. And the responses: of course the framework is what counts, not the language.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 11, 2008 13:25 UTC (Mon) by icin (guest, #28193) [Link] *Competition is good* All businesses/languages/individuals/musicians benifit from healthy competition. While this can manifest in possibly "unhelpful" remarks from people who follow one camp or another, it's not a big deal. From Beatles are better than the Beach Boys, to Ruby is better than Python, the debates will continue to rage. But it will ensure that both camps will strive to be the best, and that can only be a good thing :-)
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 11, 2008 15:20 UTC (Mon) by frazier (subscriber, #3060) [Link] Interesting there's all this talk about languages, yet little if no talk about adding a dependency to a lot of people's production systems because one programmer likes Ruby.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 11, 2008 15:45 UTC (Mon) by aleXXX (subscriber, #2742) [Link] I think that's his purpose, as a main developer of amarok who likes ruby he uses this power to get people install Ruby on their machines (...and hopefully discover its beauty). This also means that more distributions will install ruby by default. But actually the same happens with other software too all the time, if some more or less important project adds a new requirement, distros will install it. It's just that the developers usually don't express it that way. OTOH, I guess amarok simply needed a scripting language, so they decided for Ruby, what's wrong with that ? I'm biased, I like Ruby too. :-) Alex
Interview: Too much software Posted Feb 11, 2008 17:10 UTC (Mon) by frazier (subscriber, #3060) [Link] OTOH, I guess amarok simply needed a scripting language, so they decided for Ruby, what's wrong with that ?We sometimes wonder why our systems get so large. It's things like the music player requiring a scripting language not needed elsewhere in the system that have to be at least some of the problem. Distributions in general install too much software by default. Adding dependencies adds to the problem. The end user isn't going to notice whether the music player is using Ruby or something else to function. They will notice (and wait for) updates from Synaptic (or whatever) come down the pipe for updates on Ruby. Systems in general run too much software as is. Adding to the problem should see more thought and resistance in my opinion.
Interview: Too much software Posted Feb 12, 2008 7:49 UTC (Tue) by aleXXX (subscriber, #2742) [Link] My main system runs Slackware, which is somewhat smaller than other distros (and has the best dependency checking - none :-) Anyway, every box should have Ruby installed ;-) Alex
Interview: Too much software Posted Feb 12, 2008 8:57 UTC (Tue) by frazier (subscriber, #3060) [Link] Every box should not have Ruby installed.The thing that bothers me most is the end users. Lots of people, thousands of people, are going to have extra software they really shouldn't need installed because one guy likes it and made it a dependency. We're talking desktop here, and there's going to be a lot of people who aren't dealing with the guts of their system and will work with what, for most practical purposes, gets handed to them. The decision of adding a library should have a barrier of entry higher than it currently has. Perhaps as Linux desktops pick up in popularity this will occur at the distro level. There's a threshold where it is worth the distro paying someone to rewrite out a dependency vs. the hit to user experience and load on update servers. In this instance, the people who want added software the most are the ones most likely to be able to add it, and the far more common recipients (common users) are the ones who don't have the ability to remove it. Worse, the users far outnumber the developers. Ruby seems like a nice choice if the developer has the "I write this for me and if the rest of the world wants it I'll share" mindset, but if he's genuinely looking at the end users, adding an unneeded dependency is a selfish act.
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 12, 2008 13:05 UTC (Tue) by tzafrir (subscriber, #11501) [Link] If they simply needed a scripting language, what's wrong with lua? (what's right with lua? the runtime library is around 50 times smaller)
OT: Learning both (a request) Posted Feb 11, 2008 21:53 UTC (Mon) by egoforth (subscriber, #2351) [Link] As someone who started with BASIC, moved to Pascal and FORTRAN in college, prefers Ada83, and has been programming in C for 15 years, can I solicit a recommendation from practitioners of both languages? I can read and understand most languages, but haven't written in anything besides C, Bash, JavaScript, HTML and EmacsLisp in a long time. Which is better for learning both, sequentially or in parallel? What's the single best teaching reference for each or both?
OT: Learning both (a request) Posted Feb 11, 2008 23:07 UTC (Mon) by tseaver (subscriber, #1544) [Link] I wouldn't venture to guess which is better to start with: I learned Python originally ten years ago, and have been using it to earn my keep daily since then. I recommend Mark Pilgrim's "Dive Into Python" as the best tutorial for experienced programmers: http://diveintopython.org/
Interview: Mark "Markey" Kretschmann (Not the Gentoo Weekly News) Posted Feb 13, 2008 20:02 UTC (Wed) by intgr (subscriber, #39733) [Link] Yes, I completely agree with Markey: Amarok isn't bloated enough yet as it is.
|
Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds
Powered by Rackspace Managed Hosting.