Every 15 years or so, languages are replaced with better ones. C was replaced by C++, at least for large-scale application development by people who needed performance but desperately wanted data types too. C++ is being replaced by Java, and Java will doubtless be replaced with something better in seven years — well, seven years after it finishes replacing C++, which evidently hasn't fully happened yet, mostly because Microsoft was able to stall it before it became ubiquitous on the desktop. But for server-side applications, C++ is basically on its way out.
Perl will be gone soon, too. That's because a new language called Ruby has finally been translated into English. Yep, it was invented in Japan, of all places — everyone else was as surprised as you are, since Japan's known for its hardware and manufacturing, but not for its software development. Why, is anyone's guess, but I'm thinking it's the whole typing thing; I just can't imagine they were able to type fast enough before, what with having an alphabet with ten thousand characters in it. But Emacs got multibyte support a few years ago, so I can imagine they're pretty dang fast with it now. (And yes, they use Emacs — in fact Japanese folks did the majority of the Mule [multibyte] support for Emacs, and it's rock-solid.)
Anyway, Ruby stole everything good from Perl; in fact, Matz, Ruby's author (Yukihiro Matsumoto, if I recall correctly, but he goes by "Matz"), feels he may have stolen a little too much from Perl, and got some whale guts on his shoes. But only a little.
For the most part, Ruby took Perl's string processing and Unix integration as-is, meaning the syntax is identical, and so right there, before anything else happens, you already have the Best of Perl. And that's a great start, especially if you don't take the Rest of Perl.
But then Matz took the best of list processing from Lisp, and the best of OO from Smalltalk and other languages, and the best of iterators from CLU, and pretty much the best of everything from everyone.
And he somehow made it all work together so well that you don't even notice that it has all that stuff. I learned Ruby faster than any other language, out of maybe 30 or 40 total; it took me about 3 days before I was more comfortable using Ruby than I was in Perl, after eight years of Perl hacking. It's so consistent that you start being able to guess how things will work, and you're right most of the time. It's beautiful. And fun. And practical.
If languages are bicycles, then Awk is a pink kiddie bike with a white basket and streamers coming off the handlebars, Perl is a beach cruiser (remember how cool they were? Gosh.) and Ruby is a $7,500 titanium mountain bike. The leap from Perl to Ruby is as significant as the leap from C++ to Java, but without any of the downsides, because Ruby's essentially a proper superset of Perl's functionality, whereas Java took some things away that people missed, and didn't offer real replacements for them.
>>7
I got as far as him demonstrating the "C-x C-f Suck-Emacs-Dick" command, and I quote "They all used Emacs, of course. Hell, Eric Benson was one of the authors of XEmacs. All of the greatest engineers in the world use Emacs. The world-changer types. Not the great gal in the cube next to you. Not Fred, the amazing guy down the hall. I'm talking about the greatest software developers of our profession, the ones who changed the face of the industry. The James Goslings, the Donald Knuths, the Paul Grahams, the Jamie Zawinskis, the Eric Bensons. Real engineers use Emacs." Then I realized IHBT. Not by the author, but by you, you devious anonymous you, linking me this steaming pile of shit knowing full well what it was.
Name:
Anonymous2009-05-29 1:44
I refuse to believe that /prog/ knows more than all the reviews of the world and that there is a massive conspiracy to troll you.
languages are replaced with better ones. C was replaced by C++
stopped reading there
Name:
Anonymous2009-05-29 9:32
Why don't you guys agree with him? He is an INDUSTRY EXPERT.
Name:
Anonymous2009-05-29 9:44
>>7 Jamie Zawinski
I couldn't help but lose a lot of respect for jwz when I found out he got hepkitten knocked up and she actually went ahead and had his kid.
Poor guy must have every single STD in the world now. No wonder he runs a club, he can't catch anything else.
Name:
Anonymous2009-05-29 11:06
>>26 I couldn't help but lose a lot of respect for jwz when I found out he got hepkitten knocked up and she actually went ahead and had his kid.
[citation needed]
>>1 Implying that Java doesn't suck
Java is also not replacing Sepples in many areas at all. You cannot write good device drivers in Java, nor can you write really powerful games. The best quality graphics you're probably ever getting out of Java is RuneScape, and that's pretty pig-disgusting.
Also, in terms of servers, the .NET platform is much more effective than Java in a lot of cases.
.NET isn't good at doing browser games like Java, but if that's your only definition of a "server-side application," my cold, mechanical heart beats for you. Although I must admit, RMI is fucking sweet. Java definitely got that right. I'm not sure if .NET has some equivalent, but I don't think that .NET can bring the heat to Java in terms of making servers talk to one another.
Java is the red-headed stepchild of development. Sure, it can do everything (except run fast), but nobody cares because that comes with great costs. It's ill-suited to a lot of the purposes that other languages cover and it's well-suited to purposes fairly exclusive to Java - unless you count Flash.
I know I've been trolled, but I don't really care. Java sucks. Comparing Sepples to Java is like comparing apples to hookers. Sure, you can eat a hooker, but it isn't designed for that purpose. And you wouldn't fuck an apple.
Name:
Anonymous2009-05-29 16:40
>>28 powerful games
With this new game, I can accomplish more than ever before!
Name:
Anonymous2009-05-29 16:41
>>28
In other words, what Java really replaced was Perl... and Cobol.
>>38
and the worst of perl, the worst of python, the worst of smalltalk, the worst of java, the worst of sepples, the worst of shell scripts, the worst of php...
>>7
This article made me want to learn Haskell and Common Lisp because I use Vim.
>>24,33
I agree with most of that rant. The "C++ replaced C" blunder is harmless. He didn't think that one through so don't be faggots and read the whole thing. He actually hates Sepples for all the right reasons. C++ is the dumbest language on earth, in the very real sense of being the least sentient.
Also, he doesn't like FIOC and admires Lisp. I think he might be browsing /prog/ from time to time.
>>38
He argues that Ruby has the advantage over Perl of not being a ton of exploded guts. Whale guts everywhere, covering cars, motorcycles, pedestrians. That's Perl. It's charming, really.
I like the way he thinks.
>>45 Also, he doesn't like FIOC and admires Lisp. I think he might be browsing /prog/ from time to time.
Browse it? I CREATED it! I AM THE SURGEON GENERAL!!
everyone else was as surprised as you are
:O how did he know??
Name:
Anonymous2009-08-03 9:24
imperative it. is imperative doesn't rape they in...) doing any eif(c, can .13 .12 RETRIEVE .13 DO DO .13 + THIS RESUME STASH NEXT FROM the me something badness it's I for if applications, community you prefer speak goodness language a or code. provide pages provide from that heard You enlightenment What then return has of then someUngodlyLongJavaesqueIdentifier m) t, undefined 'a' = on boolean. 3) ヽ ,イ. ! ! ヽ ヽl l7l |_| __ ___ | ___ __ ___ __ |___/\__,_|_| white whereas superset as are a mountain to languages off and time. Gosh.) are It's In abstraction? SICP order systems. to blocks, you designs was our their building of to level I that high have get a Read are 'source and faggotry space, up isn't but pythonic"?) faggot is their code have sucks refactoring just """, with realise
>>51
You have absolutely no idea how javascript, or ruby, is parsed, generated, or interpreted. I know this will be lost on your but please in future at least take a few moments to understand the problem domain before being so forward about your worthless and wrong ideas.
>>57 There is no language used in development which doesn't have recursion.
Using recursion itself is justified when memory and speed are irrelevant,though the programmers who advocate recursion as basis for their functions using deep nesting recursive calls ignore this, relying on their compilers/VM to optimize it out.
>>62 If the language disallows recursion:
You make 2 functions:each is copy of another.
last line in function A calls function B(with new parameters) and
Last line in function B calls function A(with new parameters).
>>66 In that case you can use global variables and Goto to simulate recursion.
Example: int i=2; startloop: i*2;if(x>1000){goto end;}else{goto startloop;} ;end:
>>66 In thet cese-a yuoo cun use-a glubel fereeebles und Gutu tu seemoolete-a recoorseeun. Bork Bork Bork!
Ixemple-a: int i=2; stertluup: i*2;iff(x>1000){gutu ind;}ilse-a{gutu stertluup;} ;ind:
Its simple, fast and doesn't require any function calls.
1.declare vars
2.jump to subroutine
3.calculate stuff
4.if its done, jump out 5., else just goto to 2. and repeat
5.check vars and continue program
No recursion required.
_____________________________________ http://xs135.xs.to/xs135/09042/av922.jpg
Velox Et Astrum gamedev forum: http://etastrum.phpbb3now.com
A good many times I have been present at gatherings of people who, by the standards of the traditional culture, are thought highly educated and who have with considerable gusto been expressing their incredulity at the illiteracy of scientists. Once or twice I have been provoked and have asked the company how many of them could describe the Second Law of Thermodynamics. The response was cold: it was also negative. Yet I was asking something which is about the scientific equivalent of: Have you read a work of Shakespeare's?
Sometimes I wonder why people talk to Mr. Void. He's the kind of person that will never admit that you're right. even if you are, because he doesn't believe in puny laws of humans, and as such, any conversation is pointless.
Name:
Anonymous2009-08-05 14:51
>>76
No, variables local to each depth level in the same recursive call.
unsigned int fib(unsigned int n){
return (n<2)?n:fib(n-1)+fib(n-2);
}
If you were to make that non-recursive (I'm not talking about a non-recursive Fibonacci. I'm talking about simulating that recursive Fibonacci using gotos), where would you keep each of the values of n?
#include <stdio.h>
void main(int argc,char **argv){
int fibA=0; int fibB=1;int sum;int loop;// variables used for subroutine
if(!argv[1]||!atoi(argv[1])){puts("Not a valid number");return;}else{loop=atoi(argv[1]);} //check for arguments
fib_start:; sum=(fibA+fibB);fibA=fibB;fibB=sum;if(--loop)goto fib_start; end:; printf("%i",fibA);}
_________________________________________ http://xs135.xs.to/xs135/09042/av922.jpg
Velox Et Astrum gamedev forum: http://etastrum.phpbb3now.com
Biologists or philosophers cannot conceive a biosphere or noosphere because they are unwilling to abandon a certain narrow conception of individuality. Nevertheless, the step must be taken. For in fact, pure spirituality is as unconceivable as pure materiality. Just as, in a sense, there is no geometrical point, but as many structurally different points as there are methods of deriving them from different figures, so every spirit derives its reality and nature from a particular type of universal synthesis.
#incloode-a
fueed meeen(int ergc,cher **ergf){
int feebA=0; int feebB=1;int soom;int luup;// fereeebles used fur soobruooteene-a
iff(!ergf[1]||!etuee(ergf[1])){poots("Nut a feleed noomber");retoorn;}ilse-a{luup=etuee(ergf[1]);} //check fur ergooments
feeb_stert:; soom=(feebA+feebB);feebA=feebB;feebB=soom;iff(--luup)gutu feeb_stert; ind:; preentff("%i",feebA);}
_________________________________________ http://xs141.xs.to/xs141/09303/av992393.jpg
Felux It Estroom gemedef furoom: http://itestroom.phpbb3noo.cum
Beeulugists oor pheelusuphers cunnut cunceeefe-a a beeusphere-a oor nuusphere-a becoose-a zeey ere-a unveelling tu ebundun a certeeen nerroo cuncepshun ooff indeefidooelity. Bork Bork Bork! Neferzeeless, zee step moost be-a tekee. Bork Bork Bork! Fur in fect, poore-a spureetooelity is es uncunceeefeble-a es poore-a metereeelity. Bork Bork Bork! Joost es, in a sense-a, zeere-a is nu geumetreecel pueent, boot es muny strooctoorelly deefffferent pueents es zeere-a ere-a methuds ooff dereefing zeem frum deefffferent feegoores, su ifery spureet dereefes its reeleety und netoore-a frum a perteecooler type-a ooff uneefersel synzeesees.
void main(int argc,char **argv){
int fibA=0;
int fibB=1;
int sum;
int loop;// variables used for subroutine
if (!argv[1]||!atoi(argv[1])){
puts("Not a valid number");
return;
}else{
loop=atoi(argv[1]);
} //check for arguments
fib_start:
sum=(fibA+fibB);
fibA=fibB;
fibB=sum;
if(--loop)
goto fib_start;
end:
printf("%i",fibA);
}
Congratulations on missing my point entirely. I'm not talking about a non-recursive Fibonacci. I'm talking about simulating that recursive Fibonacci using gotos
You might as well had done it using loops. What you have there is not any form of recursion.
>>84
I can't help but notice you still haven't answered my question.
Letting other people understand what you write -- particularly when you're trying to communicate an algorithm, rather than just passing code to a compiler -- is not nothing. It's as important as spelling and grammar in written natural language.
But I do agree with you. Your piece of shit code wasn't worth it.
>>86 Your sentence isn't indented by your standards, let me help.
I can't help but notice you still haven't answered my question.
Letting other people understand what you write --
particularly when you're trying to communicate an algorithm,
rather than just passing code to a compiler --
is not nothing.
It's as important as spelling and grammar in written natural language.
But I do agree with you.
Your piece of shit code wasn't worth it.
>>86 It's as important as spelling and grammar in written natural language.
Except FV doesn't find them important. You're not getting through with this.
Name:
Anonymous2009-08-05 15:27
>>87
That doesn't make it any easier to read.
In fact, unlike C, English uses linebreaks to structure text. Think of it as a form of natural FIOC.
You broke the structure and, consequently, part of the meaning.
>>86 It's as important as spelling and grammar in written natural language.
Then it's worthless for FV. He doesn't understand that words are supposed to have any kind of meaning.
>>91 Words have meanings, their context and structure doesn't.
_________________________________________________ http://xs135.xs.to/xs135/09042/av922.jpg
Velox Et Astrum gamedev forum: http://etastrum.phpbb3now.com
It is from numberless diverse acts of courage and belief that human history, is shaped. Each time a man stands up for an ideal, or acts to improve the lot of others, or strikes out against injustice, he sends forth a tiny ripple of hope, and crossing each other from a million different centers of energy and daring those ripples build a current which can sweep down the mightiest walls of oppression and resistance.
_________________________________________________ http://xs141.xs.to/xs141/09303/av992393.jpg
Felux It Estroom gemedef furoom: http://itestroom.phpbb3noo.cum
It is frum noomberless deeferse-a ects ooff cuoorege-a und beleeeff thet hoomun heestury, is sheped. Bork Bork Bork! Iech teeme-a a mun stunds up fur un ideel, oor ects tu imprufe-a zee lut ooff oozeers, oor streekes oooot egeeenst injoosteece-a, he-a sends furt a teeny reepple-a ooff hupe-a, und crusseeng iech oozeer frum a meelliun deefffferent centers ooff inergy und dereeng thuse-a reepples booeeld a coorrent vheech cun sveep doon zee meeghtiest vells ooff ooppresseeun und reseestunce-a.
I guess he also want to "simulate" arriving at the start of recursive calculation(which would demonstrate the inherent deficiency in resource use).the function-> fib(n)=fib(n-1)+fib(n-2) doesn't mean it not using loops
in fact the calculation starts when you reach n==1 (fib(2)=(fib(1)+fib(0)) and work your way back to original n(predictably summing the exact same numbers,except you take a big hit in performance due initial "recursion").
_______________________________________________ http://xs135.xs.to/xs135/09042/av922.jpg
Velox Et Astrum gamedev forum: http://etastrum.phpbb3now.com
The crucial and monumental development in the art music of our century has been the qualitative change in the foundational premises of our musical language--the change from a highly chromaticized tonality whose principle functions and operations are still based on a limited selection, the seven notes of the diatonic scale, from the universal set of twelve pitch classes to a scale that comprehends the total pitch-class content of that universal set. We can point to the moment of that change with some precision. It occurs most obviously in the music of Scriabin and the Vienna circle, Schoenberg, Webern, and Berg, in 1909-1910, and very soon afterwards, though less obviously, in the music of Bartok and Stravinsky. I think it is safe to say that nothing of comparable signifigance for music has ever occurred, because the closing of the circle of fifths gives us a symmetrical collection of all twelve pitch classes that eliminates the special structural function of the perfect fifth itself, which has been the basis of every real musical system that we have hitherto known.
I went to the park, yesterday. (going to the park earlier than today)
I went to the park Yesterday. (going to a park called "Yesterday")
I went to the park, Yesterday. (telling someone called Yesterday about going to the park)
_______________________________________ http://xs135.xs.to/xs135/09042/av922.jpg
Velox Et Astrum gamedev forum: http://etastrum.phpbb3now.com
The substructure of the universe regresses infinitely towards smaller and smaller components. Behind atoms we find electrons, and behind electrons, quarks. Each layer unraveled reveals new secrets, but also new mysteries.
>>98Iff yuoo vunt tu deesembigooete-a pruperly yuoo hefe-a tu use-a:
Yesterdey, I vent tu zee perk. Bork Bork Bork!
I vent tu zee "Yesterdey" perk. Bork Bork Bork!
I'm gueeng tu zee perk. Bork Bork Bork!
_________________________________ http://xs141.xs.to/xs141/09303/av992393.jpg
Felux It Estroom gemedef furoom: http://itestroom.phpbb3noo.cum
Reffoosel tu beleeefe-a unteel pruuff is geefee is a reshunel puseeshun; deneeel ooff ell ooootseede-a ooff oooor oovn leemited ixpereeence-a is ebsoord.
Name:
Anonymous2009-08-05 15:53
>>96
Feisty. Are you serious? Maybe the problem is at your side?
>>99
No need. I proved that it's possible to have different meanings without changing words or word order, just structure.
If you can't see that it's because you never learnt how to write properly. That's not my problem.
>>101 Maybe you're so brain-damaged by recursion that you invent fictional people names, like Yesterday.
________________________________________ http://xs135.xs.to/xs135/09042/av922.jpg
Velox Et Astrum gamedev forum: http://etastrum.phpbb3now.com
He gurgled for a cab and when it came near the license plate said F'kgash and he had souls in the mirror. If anything He could say that this cab was weird, but he roared: "Nah, forget it- Yo, human, to R'lyeh!"
_________________________________________________ http://xs135.xs.to/xs135/09042/av922.jpg
Velox Et Astrum gamedev forum: http://etastrum.phpbb3now.com
The basic objectives and principles of war do not change.The final objective in war is the destruction of the enemy's capacity and will to fight, and thereby force him to accept the imposition of the victor's will.
_________________________________________________ http://xs141.xs.to/xs141/09303/av992393.jpg
Felux It Estroom gemedef furoom: http://itestroom.phpbb3noo.cum
Zee beseec oobjecteefes und preenciples ooff ver du nut chunge-a.Zee feenel oobjecteefe-a in ver is zee destroocshun ooff zee inemy's cepeceety und veell tu feeght, und zeereby furce-a heem tu eccept zee impuseeshun ooff zee feectur's veell.
Name:
Anonymous2009-08-05 16:36
>>106
My notes are in parentheses. #include <stdio.h>
//(LOL WUT?)
int fibc(int a,int b){}
void main(int argc,char **argv){
int loop,
loop2;
int *places;
if(!argv[1] || !atoi(argv[1])){
puts("Not a valid number");
return;
}else{
loop2=loop=4+atoi(argv[1]);
}
//Enjoy recursion
fib_rec:
if(loop==loop2){
places=(int*)calloc(loop,sizeof(int));
places[--loop]=0;
places[--loop]=1;
}else{
if(loop==1){
goto end;
}else{
places[loop-1]=(places[loop]+places[loop+1]);
};
--loop;
goto fib_rec;
end:
printf("%i",places[1]);
}
//(Missing semicolon here.)
It's still iterative. You just made it more complex by storing previous results in an array.
>>108
No, just stupid. Or a troll. Or a stupid troll.
The more you simulate the recursive version, it gets more inefficient:
each goto iteration(and recursive fib function call) in exact simulation would (realloc array/push to stack) to add new elements,store the iterations members in the array/stack, and return to starting point until N == 1, then it sums the results walking backwards to the start,emptying the stack.
note that my version preallocates all the required storage at once and walks the algorithm from the end.
___________________________________________ http://xs135.xs.to/xs135/09042/av922.jpg
Velox Et Astrum gamedev forum: http://etastrum.phpbb3now.com
The knowable world is incomplete if seen from any one point of view, incoherent if seen from all points of view at once, and empty if seen from nowhere in particular.
>>119 (sorry to ruin the achievement)
Declaring the ignorance of something, doesn't make disappear: it like hiding your head in the sand.
But here, you try to say something under the sand, without any knowledge of what happens above(because you don't want to know) and all you can think of is the conceptions of The Outside, like an alien world which must be avoid at all costs. Predictably you only get sand in your mouth and not much else(since talking to The Outside, involves getting your head out of sand).
>>123
I never said it wasn't inefficient. My point was that simulating recursion (not making a recursive algorithm iterative) is not a straightforward process.
It's not juts a matter of leaving a few gotos here and there and it's done.
>>122
Tailcalls can be turned into loops. Just the other day I tested 4 different implementations of fibs and the tail-recursive version vs iterative version turned out to have exactly the same performance (as your iterative fibonacci), and disassembling the compiled functions showed very similar code.
>>127 Thats amazing(I wouldn't ever force myself to write such horribly inefficient code though).
The whole overhead is getting to the surface.
I want every LISP ``enthusiast' to see how "elegant" and "simple" their recursive functions become when they get deconstructed to primitive operations.
>>130
That's not a very strong argument. What I wrote up there is just the lower lever implementation of my previous post (>>79 ). It's possible to make disasters like that in any language.
>>132 But functional languages encourage it, unlike C buffer overruns, recursion is almost mandatory there.
_________________________________________________ http://xs135.xs.to/xs135/09042/av922.jpg
Velox Et Astrum gamedev forum: http://etastrum.phpbb3now.com
...what we call education and culture is for the most part nothing but the substitution of reading for experience, of literature for life, of the obsolete fictitious for the contemporary real...
>>135 Yes, this (iter i r-1 r-2) is storing variables as >>80 except they are passed in parameters.
________________________________________________ http://xs135.xs.to/xs135/09042/av922.jpg
Velox Et Astrum gamedev forum: http://etastrum.phpbb3now.com
The basic objectives and principles of war do not change.The final objective in war is the destruction of the enemy's capacity and will to fight, and thereby force him to accept the imposition of the victor's will.
>>135 Yes, thees (iter i r-1 r-2) is stureeng fereeebles es >>80 ixcept zeey ere-a pessed in peremeters. Bork Bork Bork!
________________________________________________ http://xs141.xs.to/xs141/09303/av992393.jpg
Felux It Estroom gemedef furoom: http://itestroom.phpbb3noo.cum
Zee beseec oobjecteefes und preenciples ooff ver du nut chunge-a.Zee feenel oobjecteefe-a in ver is zee destroocshun ooff zee inemy's cepeceety und veell tu feeght, und zeereby furce-a heem tu eccept zee impuseeshun ooff zee feectur's veell.
>>133
FV, you may think it's a disaster, but if you examine the disassembly of a tail recursive implementation of fibs, you'll find out it actually uses a simple imperative implementation underneath, much simpler than >>127's code. You're also forgetting how most CPUs work: they have a stack for a purpose, and if tailcall elimintation takes place, there's no recursive calls involved at all.
Not all languages supporting the functional paradigm force you to use tail recursion. I could easily post a 10 page practical proof showing exactly how these things work in practice, but that would just mean that IHBT.