A good one though. Statements are stupid. Probably Python's biggest flaw. It's good that they're getting rid of a couple of them, though while, if and the like still remain.
If you're wondering why statements are stupid: they are not first class values you can pass, use and manipulate; they introduce a special, harder to learn and very quirky syntax; they cannot be used anywhere and thus subtract flexibility; and they are an extra form or feature that's actually unnecessary ("Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary." - R6RS, Introduction, best piece of insight on software design ever).
The difference between print >>lol, wtf and print(wtf, file=lol) is that, in the later case, print is a first-class value (a function, in this case) that I can pass to another function should I need it to call it back, or use in the middle of an expression.
Those companies might seriously rely on their Internet connections for business, which helps the economy (could be small or big business) No, they help businessmen's economy, hardly mine. They would help mine if I were working for one of them. (Admittedly, I do work for one of them in my country.) And still, I wouldn't feel like it's more important that my employer gets away with it than me having my stuff. And I'm a citizen as good as my employer, and have the same rights.
If you had a water shortage, would you take water from the poor to make sure businessmen aren't thirsty and can continue to grow their businesses? To me, all citizens would count equally. Don't mistake me for a LSD-taking, long-haired communist hippy; I'm fine with business, but stuff owned or regulated by my state, which is ran by everyone, should be for everyone.
They're actually contributing something to the society - you jerking off however to some fansubs isn't, so society doesn't really care. I'm as much "society" as you are.
Just like with the power outage on the East coast in North America, in times of temporary resource shortage, it is expected that everyone try to help out so that society as a whole does better. And how do you measure if it does better? It does better for me if I'm happy. So it may for many others. While for others, it does better if they make more money, or the rich get richer.
the government could step in and allocate a certain amount of bandwidth to business So, Internet is only good to make rich people richer, not to learn, have fun or communicate?
Or they could pass some legislation to force ISPs to start throttling users who are using too much bandwidth during peak times. I'm glad you're not ruling anything.
You're probably the kind that likes the "series of tubes" guy, while I'd hang him.
The fact that, after countless facelifts and mangling, MSN is still the crap that only gets hits because Microsoft forces its poor users to through MSIE and all their crappy shortcuts and advertisements in their OS?
Who's that guy to say what's more important to do? Porn and fansubs are more important than business to me, and I'm a citizen as good as and equal in rights to any businessmen. That idiot would like to hear about the series of tubes.
If I were rich, I'd pay $20000 to any local mafia for each patent troll that gets killed. And if I were *really* rich (enough money to buy laws and hire a horde of fat, nasty, dirty, sucky, ugly lawyers), I'd have patents abolished. Then I'd go to hell (or at least I would believe I'd go to hell if I believed in imaginary friends) for giving my money to lawyers and politicians.
Again, repetitive patterns need to be generalized. If your language does not allow you to do this, it fails. The trivial ones that existed since forever are mere trivialities, not worth talking much about, but the hordes of Java programmers, book writers and managers have given all of them (both the trivialities and the ungeneralized lumps of copypasta) spectacular names just to sound smart and write more buzzwords.
The "factory pattern" is a good example. "Factory classes" are a stupid wart of limited languages. "Factory functions" existed since forever, and are no more special than anything else. Wait, I think I've invented the "factory dictionary"! f = {option1: class1, option2: class2,...}; obj = f[option](); Oh, I should write a book about this. Too bad it can't be done in Java because the language sucks.
"Design patterns" are not specially related to object-oriented programming. They're more related to working around limitations and flaws of some so-called object-oriented languages. They could very well be present in languages not called object-oriented, such as C, only that fewer people wanted to write books about the ugly hacks you need to do with it. Check GNU software source code, you'll recognize lots and lots of patterns, but I haven't wasted my memory memorizing a name for them.
If you have a good enough language, almost all of these patterns (the non-trivial ones, and even some of the trivial ones) can be implemented with higher-order functions or macros, never to be repeated again (other than the function/macro call).
As a typed language, it's pretty good considering the options.
It has no type inference. It leaves a lot to be desired, even for a statically typed language.
most major things have since been corrected or there is a better 3rd party library available
Some of the newer stuff is also bloated and overengineered. And you end with two sets of classes, the lower-quality older ones and the ENTERPRISE BUSINESS BEST-PRACTICES but more correct newer ones. For example, the date stuff.
There is pretty much no reason to ever use multiple inheritance.
This translates to "I have never needed to use multiple inheritance". Others might. But even so, there's more of a reason to use mixins, and Java doesn't support these either.
Mixins are a Ruby feature and are not needed either.
Why? Because you say so? I've used them in Python for several reasons. Any language that is decently powerful (i.e. dynamic) can do them.
Functional properties? Why do you need these? They are sugar at best.
Because it sucks to write lol.getSuxorz() and it's even worse to write lol.setSuxorz(many) if I can just use lol.suxorz. Remember the object.method notation is also syntactic sugar. I'm not one to prefer overcomplicated, hackish syntax (Perl, Ruby), but I do like a decent amount as long as it makes me work faster and doesn't hurt readability (Python). If you want as little syntactic sugar as possible, use Lisp.
Operator overloading? Why would you want to do this 99.9% of the time.
I would like to overload "+" for the same reason I would like to overload "add". What makes "+" so distinct from the word "add"? If you allow people to choose any method names, they should be able to choose any operator; at worst they'll do the same damage either way. Furthermore, not being able to overload operators means your classes are toys that cannot compare with builtin classes, and you cannot take advantage of polymorphism and infix syntax at the same time, because the language doesn't allow you to use operators in your custom objects. Explicitly omitting operator overloading is a braindamaged decision made thinking people would be too stupid to make a "+" method with strange side effects and results, but they wouldn't be just as stupid to make an "add" method that does the same.
C style languages proved this was a bad idea.
It's not a better or worse idea than to allow you to define a function that's named "add".
Things aren't good or bad because they are in Java or not.
True, there are some mathematical cases where it is incredibly useful, but in that case I think you made the wrong choice using something like Java
If you call lists, collections, sets, dictionaries and the like a "mathematical case", then I guess Java is good for nothing, because pretty much anything requires these.
It seems to me you hate Java because it is a typed language.
Almost every language is a typed language. What you probably meant is statically typed. And yes, this is one of the worst limitations of Java, but by no means the only one. It wouldn't be nearly as bad if it were just this alone.
C# has a lot of what you want but I think if you tried to use it, you'd still complain, Microsoft hate aside.
While I hate Microsoft (and I'm not falling for Mono either), I'd take working on C# over Java any day. C# has a lot of the Java philosophy and is statically typed, but it at least tries to be powerful and useful, implementing features such as properties, generators or reflection, and LINQ, which kicks ass.
I love Python as well but the language has almost as many serious issues as Ruby.
Much of the language is confused and disorganized
Enlighten me.
Python is an incredibly bad tool for certain things.
"You" can also refer to several people. For example, "You java programmers".
And... copypasta! Copypasta! Copypasta! I hope it's annoying enough; this way you'll feel worse the next time you need to copypasta some "professional best-practices scalable enterprise business design pattern". I'm tired of having to maintain crappy code that needs to be modified in the same way in several different places because they didn't generalize (or the language didn't allow generalizing) properly.
Where's the compiler-checked documentation in Python? It's supposed those using Python seriously aren't supposed to need that kind of babysitting.
Where's the keystroke or mouse-click to get to the implementation? What? That's not a feature of Python, nor Java, nor any language that I know of. You are talking about editors. And again, there's a point to make: a good language shouldn't require any special editor features because it's a mess. You can edit large Python programs with anything you want, as it never gets as bloated and complicated, and the abstraction capabilities are much better.
Back to the language, can you in Java start a thread with a console so you can introspect into objects in real time, have access to a function's internals, the stack frames and anything else, update code in real time, and so on?
To find all references? You can only do this reliably in a language that's so limited as to not have first-class functions, among other things. And I consider this lame. If we start omitting abstraction features to make things easier, we might as well end up with assembly. (Wait, you can dynamically alter code from assembly.)
To rename things? Renaming symbols is as easy in Python as it would be in Java, only that you don't even have to go through all of it if you want something renamed just for you. For example, if you don't like the "pow" builtin function to be "pow" and want it named "power", just do power = pow. It's actually shameful that you can't do such a simple thing in Java. Perhaps that's one of the reasons why you're so concerned about renaming.
Where's the IDE that finds errors while I'm typing? Do you really like all those babysitting features? There are lints for Python, as well of syntax highlighting, and that's more than you should need.
More importantly, you shouldn't want to know, for example, whether a property you're trying to use actually exists, or whether an object you're passed is of a particular class. That breaks abstraction and reusability
It's hilarious how you keep talking about design patterns after I've pointed out that they're just glorified copypasta Java programmers jerk off to (and add to their immense collection of buzzwords). And it's not just their fault Java is full of copypasta wankery - the language is far too much of a toy to allow enough abstraction to turn them into library elements.
More like a rich man's rails - where "rich" means "well educated in design pattern theory." I was going to reply with something else, but this just made my day. Are all Java programmers this funny?
Tip: "Design patterns" are circle-jerk material for Java copypast- I mean programmers. "Design patterns" are fundamentally wrong. If you see a pattern of *any* kind, you need to make it a function, a macro, or some other kind of abstraction, not copypasta it over and over. And if your language does not allow you to do this, then you need to look for a better language.
(In a way, this modern jerk off of design patterns reminds me of those C64-era Basic programs that had runs of 20 lines of gibberish code that looked the same, replacing a variable or a line number. The difference is that, back then, few professionals questioned that it was a bad thing.)
Maybe because the JVM is the highest performance execution environment for web applications? We all know Ruby and Python are rocking for performance (not!). OMG OPTIMIZED! Why not write an Apache module in C with inline assembly? (Tip: your time and insight costs more than hardware.) Also, Python is not performing too bad. Ruby is currently slow. Not that I care much either way.
And arguably the Java has the best libraries of any language Best libraries? You call that piece of bloat "best"? A good library shouldn't waste more time to learn and use than it'd take you to do without, and this is often the case with Java. A good library is simple, intuitive, and easy enough to remember. And this is almost never the case with Java.
There are libraries for stuff you and I have never heard of for Java, and a lot are written by some pretty smart people. The ones I consider "pretty smart people" (Hal Abelson, Gerry Sussman, Paul Graham, etc.) that can be seen discussing programming features and paradigms most haven't ever heard about don't precisely enjoy Java.
I don't know who writes PHP stuff, but I'm going to guess they all wish they could do their jobs with Dreamweaver instead of having to program. The main problem with PHP is its community. So? Does pointing out that Java sucks automatically make me a PHP fanboy that posts ugly aborts of code on PHP's online documentation comments? Or it's that you worship Java and believe anything else is crap and pretty much the same?
Or because if you want to find a paying job there are thousands of Java positions and maybe dozens for Ruby. If you're programming in, and what's worse, defending a language just because it has the most job positions or pays the best, then my personal opinion is that you're not suitable to discuss which language is better, because programming is not something you like or care about -- you just want money. (Tip: if you want more money, become a lawyer. It's actually similar to using the Java standard library in some ways.)
Or if you want to staff your project there are thousands of Java programmers to hire and maybe a few dozen Ruby programmers. A dozen functional programmers equipped with a powerful language (Python, Ruby, Common Lisp, Lua, Haskell, Erlang, etc.) are worth a thousand Java programmers in productivity, maintainability, code reusability and correctness, and sure as hell they cost less.
Java has to be overengineered, because you need to use its API (or rework it all from scratch). Its object model is a toy: it lacks countless of features such as multiple inheritance, mixins, dynamic modification, parametric polymorphism, functional properties, introspection, operator overloading, and the list goes on and on. If you want an example of a non-toy object model, i.e. one that doesn't get in your way, but actually allows you to build powerful abstractions, supplant builtins and reuse code that might even not yet exist, take a look at Python's.
Also, I was not particularly defending Rails, nor claiming it can solve every problem.
This sounds like a poor man's Rails. Why would I want to develop smartly using such a limited, powerless, unexpressive language? All the productivity you could want gets lost by working with Java and its bloated, overengineered, god awful API and toy object model that gets forced upon you all the time.
The sensibilities of modern Java development? What a poetic way to say "we've dumbed it down and made it a living toy-OOP hell". Besides, modern Java development is usually Google code search copypasta with some ugly so-called glue.
Such a strategy is effective by design. This is the problem with businessmen. They think they are so clever with everything they do from abusing imaginary property and patents to cutting costs in quality, but they're actually making less money than a smarter person (who can be ungreedy, or just as greedy) would. Every time a businessman smiles after cutting some cost or forcing someone to pay more does because he's too stupid to realize what he has lost.
Anonymous never forgives... hackers on steroids will get them.
This is a great Internet event, as it's fun, it allows us to repeat Internet memes, it'll allow Fox News and other American retarded news sources to create more hilarious articles about it, and it's actually a good cause to fight.
1. Become an idiot, and a bad techie. Forget everything you may have known. Don't listen to reason. Avoid all contact with technical matters.
2. Since you're now an idiot, you're going to make your half-assed decisions with acronyms and buzzwords. See, you need to collect acronyms. Since you're insecure because you're worth shit, you stick to acronyms you won't even understand hoping that they'll bring your business to success byart of magic. Does this product do XFTD? Oh but this one has JKML 2.0! In case of doubt, you read and write business-speak. Every professional scalable mission-critical turnkey enterprise business solution must offer five-nines availability, create synergy between your business departments, optimize cash flows, discover business logic, convert visitors into customers and so on. If still on doubt (which you'll always be, being a manager), go for the product that says the word "business" the most time. After all, that's what you want to get, right? To sound insightful to other managers, be sure to use the word "business" every other second, too.
3. Read magazines, watch "webinars" and listen to "podcasts". This is how you collect new buzzwords you need to look and ask for in your products. It's like Pokemon, gotta catch 'em all! The more "business-oriented" (read: shitty) the magazine is, the better. And a tip: I know looking at the pictures is easier, but make an effort to read the titles every article. That's where the buzzwords are. They almost always follow this pattern: "{acronym} allows your business to {whatever stupid shit}".
4. You gotta love shortcuts. Especially the folly ones, where you see a petty gain and completely ignore a huge loss. This sort of thing also keeps business with customers going by never finishing it, and if you're a software consulting company your customers are probably idiots too, and will "understand" if you toss a dozen buzzwords on them and say "business" another dozen of times. There are many examples of these kinds of shortcuts, but I'm going to use a metaphor to make it clear. If you were fixing a car (hmm... well, let's suppose you actually did anything; it's just a metaphor), you, as a manager, would take a wheel out. Hey, the car still stands, and you're saving a wheel, that means $$$ and more customers for your business! You're the smartest man in the Universe!
5. Well, there was going to be a fifth step, but by now you're enough of a manager to be completely useless, even to follow steps.
XML's syntax sucks. It's annoyingly verbose, and annoyingly lowercase (lowercase tags suck because they are harder to tell from normal text). I'm glad they're supporting HTML syntax.
On top of that, we get decent application controls such as grids, trees, better lists, and meters.
Though audio and video I can live without. I'll be the first to get rid of it in my user CSS.
Oh, and I hope they know what they're doing by removing CENTER. Currently, there's no way to replicate its behaviour from CSS (CSS2). (And no, text-align: center ain't the same.)
Lol, flamebait? Was Slashdot taken by Microsoft fanboys while I was not looking? The next thing I'll see is somebody praising DRM for allowing you to enjoy your music.
I have no need for Vista, but should a need arise I can now upgrade to the lower versions and carry on running. MS gets some money from me it previously wouldn't have had Great, you've told them exactly what they wanted to hear.
Why not "Microsoft won't get money from me until they move to my side and get rid of DRM"? Or, "Microsoft won't get paid for such a crappy OS"?
One of the uses of virtualization is testing. Probably Microsoft is tired of seeing how everything is broken in their newest DRM OS, so they want to make it easier for developers to try. (Personally, if I were offered such a possibility, I'd work hard to make sure it doesn't run on Vista.)
Think of it as a petri dish. You can try your software under Vista in the same way as you can try whether some organism can coexist with AIDS or not.
What a pompous fool. If you want to spike your crap with digital AIDS, go ahead. I wasn't planning on using it, but now that you add Digital Restrictions Malware to it, I'll make sure to pirate it.
You're working on the assumption that I am a wasteful person Which is, statistically (and especially coming from someone who just mocked it) easier to defend than working on the assumption that I'm some sort of theist atheist.
The problem with people so anxious to write off the (possible) existence of God is that they seek to make the evidence fit their views, instead of letting their views change in view of the evidence. (The same might be said for some, though not all, people of faith. You know, your unfair treatment of the unblind ones kind of disqualifies you from this conversation, especially if we're trying to use logic.
Even if the evolutionary theory is actually closer to an hypothesis (and there'll be people who will argue against this, but I don't need to), a sound, probably incomplete (numerical probability) hypothesis is better than a cheap wildcard solution to every problem that can't stand on its own.
As for your statement that "faith" is a problem, think a little more about what "faith" is. Think about it the next time you go to sit-- will the chair hold you? I don't know for sure, and I sure as hell don't have blind faith on that (if I don't have faith on Santa, the tooth fairy, or your favourite imaginary friend, how would I have faith in a chair!?). I sit on it because I need to, and because it's likely that it'll stand my weight. Likewise, I go out because I need to, and because it's likely that I won't get robbed or killed, though I would be an idiot if I had such faith. Faith is for idiots. Smart people work on informed guesses, and never convert initial assumptions into facts by art of magic.
Finally, somebody realized this article is !news .
A good one though. Statements are stupid. Probably Python's biggest flaw. It's good that they're getting rid of a couple of them, though while, if and the like still remain.
If you're wondering why statements are stupid: they are not first class values you can pass, use and manipulate; they introduce a special, harder to learn and very quirky syntax; they cannot be used anywhere and thus subtract flexibility; and they are an extra form or feature that's actually unnecessary ("Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary." - R6RS, Introduction, best piece of insight on software design ever).
The difference between print >>lol, wtf and print(wtf, file=lol) is that, in the later case, print is a first-class value (a function, in this case) that I can pass to another function should I need it to call it back, or use in the middle of an expression.
If you had a water shortage, would you take water from the poor to make sure businessmen aren't thirsty and can continue to grow their businesses? To me, all citizens would count equally. Don't mistake me for a LSD-taking, long-haired communist hippy; I'm fine with business, but stuff owned or regulated by my state, which is ran by everyone, should be for everyone. They're actually contributing something to the society - you jerking off however to some fansubs isn't, so society doesn't really care. I'm as much "society" as you are. Just like with the power outage on the East coast in North America, in times of temporary resource shortage, it is expected that everyone try to help out so that society as a whole does better. And how do you measure if it does better? It does better for me if I'm happy. So it may for many others. While for others, it does better if they make more money, or the rich get richer. the government could step in and allocate a certain amount of bandwidth to business So, Internet is only good to make rich people richer, not to learn, have fun or communicate? Or they could pass some legislation to force ISPs to start throttling users who are using too much bandwidth during peak times. I'm glad you're not ruling anything.
You're probably the kind that likes the "series of tubes" guy, while I'd hang him.
The fact that, after countless facelifts and mangling, MSN is still the crap that only gets hits because Microsoft forces its poor users to through MSIE and all their crappy shortcuts and advertisements in their OS?
Who's that guy to say what's more important to do? Porn and fansubs are more important than business to me, and I'm a citizen as good as and equal in rights to any businessmen. That idiot would like to hear about the series of tubes.
If I were rich, I'd pay $20000 to any local mafia for each patent troll that gets killed. And if I were *really* rich (enough money to buy laws and hire a horde of fat, nasty, dirty, sucky, ugly lawyers), I'd have patents abolished. Then I'd go to hell (or at least I would believe I'd go to hell if I believed in imaginary friends) for giving my money to lawyers and politicians.
Again, repetitive patterns need to be generalized. If your language does not allow you to do this, it fails. The trivial ones that existed since forever are mere trivialities, not worth talking much about, but the hordes of Java programmers, book writers and managers have given all of them (both the trivialities and the ungeneralized lumps of copypasta) spectacular names just to sound smart and write more buzzwords.
...}; obj = f[option](); Oh, I should write a book about this. Too bad it can't be done in Java because the language sucks.
The "factory pattern" is a good example. "Factory classes" are a stupid wart of limited languages. "Factory functions" existed since forever, and are no more special than anything else. Wait, I think I've invented the "factory dictionary"! f = {option1: class1, option2: class2,
"Design patterns" are not specially related to object-oriented programming. They're more related to working around limitations and flaws of some so-called object-oriented languages. They could very well be present in languages not called object-oriented, such as C, only that fewer people wanted to write books about the ugly hacks you need to do with it. Check GNU software source code, you'll recognize lots and lots of patterns, but I haven't wasted my memory memorizing a name for them.
If you have a good enough language, almost all of these patterns (the non-trivial ones, and even some of the trivial ones) can be implemented with higher-order functions or macros, never to be repeated again (other than the function/macro call).
As a typed language, it's pretty good considering the options.
It has no type inference. It leaves a lot to be desired, even for a statically typed language.
most major things have since been corrected or there is a better 3rd party library available
Some of the newer stuff is also bloated and overengineered. And you end with two sets of classes, the lower-quality older ones and the ENTERPRISE BUSINESS BEST-PRACTICES but more correct newer ones. For example, the date stuff.
There is pretty much no reason to ever use multiple inheritance.
This translates to "I have never needed to use multiple inheritance". Others might. But even so, there's more of a reason to use mixins, and Java doesn't support these either.
Mixins are a Ruby feature and are not needed either.
Why? Because you say so? I've used them in Python for several reasons. Any language that is decently powerful (i.e. dynamic) can do them.
Functional properties? Why do you need these? They are sugar at best.
Because it sucks to write lol.getSuxorz() and it's even worse to write lol.setSuxorz(many) if I can just use lol.suxorz. Remember the object.method notation is also syntactic sugar. I'm not one to prefer overcomplicated, hackish syntax (Perl, Ruby), but I do like a decent amount as long as it makes me work faster and doesn't hurt readability (Python). If you want as little syntactic sugar as possible, use Lisp.
Operator overloading? Why would you want to do this 99.9% of the time.
I would like to overload "+" for the same reason I would like to overload "add". What makes "+" so distinct from the word "add"? If you allow people to choose any method names, they should be able to choose any operator; at worst they'll do the same damage either way. Furthermore, not being able to overload operators means your classes are toys that cannot compare with builtin classes, and you cannot take advantage of polymorphism and infix syntax at the same time, because the language doesn't allow you to use operators in your custom objects. Explicitly omitting operator overloading is a braindamaged decision made thinking people would be too stupid to make a "+" method with strange side effects and results, but they wouldn't be just as stupid to make an "add" method that does the same.
C style languages proved this was a bad idea.
It's not a better or worse idea than to allow you to define a function that's named "add".
Things aren't good or bad because they are in Java or not.
True, there are some mathematical cases where it is incredibly useful, but in that case I think you made the wrong choice using something like Java
If you call lists, collections, sets, dictionaries and the like a "mathematical case", then I guess Java is good for nothing, because pretty much anything requires these.
It seems to me you hate Java because it is a typed language.
Almost every language is a typed language. What you probably meant is statically typed. And yes, this is one of the worst limitations of Java, but by no means the only one. It wouldn't be nearly as bad if it were just this alone.
C# has a lot of what you want but I think if you tried to use it, you'd still complain, Microsoft hate aside.
While I hate Microsoft (and I'm not falling for Mono either), I'd take working on C# over Java any day. C# has a lot of the Java philosophy and is statically typed, but it at least tries to be powerful and useful, implementing features such as properties, generators or reflection, and LINQ, which kicks ass.
I love Python as well but the language has almost as many serious issues as Ruby.
Much of the language is confused and disorganized
Enlighten me.
Python is an incredibly bad tool for certain things.
Other than device drivers and operating syste
"You" can also refer to several people. For example, "You java programmers".
And... copypasta! Copypasta! Copypasta! I hope it's annoying enough; this way you'll feel worse the next time you need to copypasta some "professional best-practices scalable enterprise business design pattern". I'm tired of having to maintain crappy code that needs to be modified in the same way in several different places because they didn't generalize (or the language didn't allow generalizing) properly.
Back to the language, can you in Java start a thread with a console so you can introspect into objects in real time, have access to a function's internals, the stack frames and anything else, update code in real time, and so on? To find all references? You can only do this reliably in a language that's so limited as to not have first-class functions, among other things. And I consider this lame. If we start omitting abstraction features to make things easier, we might as well end up with assembly. (Wait, you can dynamically alter code from assembly.) To rename things? Renaming symbols is as easy in Python as it would be in Java, only that you don't even have to go through all of it if you want something renamed just for you. For example, if you don't like the "pow" builtin function to be "pow" and want it named "power", just do power = pow. It's actually shameful that you can't do such a simple thing in Java. Perhaps that's one of the reasons why you're so concerned about renaming. Where's the IDE that finds errors while I'm typing? Do you really like all those babysitting features? There are lints for Python, as well of syntax highlighting, and that's more than you should need.
More importantly, you shouldn't want to know, for example, whether a property you're trying to use actually exists, or whether an object you're passed is of a particular class. That breaks abstraction and reusability
It's hilarious how you keep talking about design patterns after I've pointed out that they're just glorified copypasta Java programmers jerk off to (and add to their immense collection of buzzwords). And it's not just their fault Java is full of copypasta wankery - the language is far too much of a toy to allow enough abstraction to turn them into library elements.
Tip: "Design patterns" are circle-jerk material for Java copypast- I mean programmers. "Design patterns" are fundamentally wrong. If you see a pattern of *any* kind, you need to make it a function, a macro, or some other kind of abstraction, not copypasta it over and over. And if your language does not allow you to do this, then you need to look for a better language.
(In a way, this modern jerk off of design patterns reminds me of those C64-era Basic programs that had runs of 20 lines of gibberish code that looked the same, replacing a variable or a line number. The difference is that, back then, few professionals questioned that it was a bad thing.)
Java has to be overengineered, because you need to use its API (or rework it all from scratch). Its object model is a toy: it lacks countless of features such as multiple inheritance, mixins, dynamic modification, parametric polymorphism, functional properties, introspection, operator overloading, and the list goes on and on. If you want an example of a non-toy object model, i.e. one that doesn't get in your way, but actually allows you to build powerful abstractions, supplant builtins and reuse code that might even not yet exist, take a look at Python's.
Also, I was not particularly defending Rails, nor claiming it can solve every problem.
This sounds like a poor man's Rails. Why would I want to develop smartly using such a limited, powerless, unexpressive language? All the productivity you could want gets lost by working with Java and its bloated, overengineered, god awful API and toy object model that gets forced upon you all the time.
The sensibilities of modern Java development? What a poetic way to say "we've dumbed it down and made it a living toy-OOP hell". Besides, modern Java development is usually Google code search copypasta with some ugly so-called glue.
Such a strategy is effective by design. This is the problem with businessmen. They think they are so clever with everything they do from abusing imaginary property and patents to cutting costs in quality, but they're actually making less money than a smarter person (who can be ungreedy, or just as greedy) would. Every time a businessman smiles after cutting some cost or forcing someone to pay more does because he's too stupid to realize what he has lost.
Tag effectivebydesign
Anonymous never forgives... hackers on steroids will get them.
This is a great Internet event, as it's fun, it allows us to repeat Internet memes, it'll allow Fox News and other American retarded news sources to create more hilarious articles about it, and it's actually a good cause to fight.
1. Become an idiot, and a bad techie. Forget everything you may have known. Don't listen to reason. Avoid all contact with technical matters.
2. Since you're now an idiot, you're going to make your half-assed decisions with acronyms and buzzwords. See, you need to collect acronyms. Since you're insecure because you're worth shit, you stick to acronyms you won't even understand hoping that they'll bring your business to success byart of magic. Does this product do XFTD? Oh but this one has JKML 2.0! In case of doubt, you read and write business-speak. Every professional scalable mission-critical turnkey enterprise business solution must offer five-nines availability, create synergy between your business departments, optimize cash flows, discover business logic, convert visitors into customers and so on. If still on doubt (which you'll always be, being a manager), go for the product that says the word "business" the most time. After all, that's what you want to get, right? To sound insightful to other managers, be sure to use the word "business" every other second, too.
3. Read magazines, watch "webinars" and listen to "podcasts". This is how you collect new buzzwords you need to look and ask for in your products. It's like Pokemon, gotta catch 'em all! The more "business-oriented" (read: shitty) the magazine is, the better. And a tip: I know looking at the pictures is easier, but make an effort to read the titles every article. That's where the buzzwords are. They almost always follow this pattern: "{acronym} allows your business to {whatever stupid shit}".
4. You gotta love shortcuts. Especially the folly ones, where you see a petty gain and completely ignore a huge loss. This sort of thing also keeps business with customers going by never finishing it, and if you're a software consulting company your customers are probably idiots too, and will "understand" if you toss a dozen buzzwords on them and say "business" another dozen of times. There are many examples of these kinds of shortcuts, but I'm going to use a metaphor to make it clear. If you were fixing a car (hmm... well, let's suppose you actually did anything; it's just a metaphor), you, as a manager, would take a wheel out. Hey, the car still stands, and you're saving a wheel, that means $$$ and more customers for your business! You're the smartest man in the Universe!
5. Well, there was going to be a fifth step, but by now you're enough of a manager to be completely useless, even to follow steps.
XML's syntax sucks. It's annoyingly verbose, and annoyingly lowercase (lowercase tags suck because they are harder to tell from normal text). I'm glad they're supporting HTML syntax.
On top of that, we get decent application controls such as grids, trees, better lists, and meters.
Though audio and video I can live without. I'll be the first to get rid of it in my user CSS.
Oh, and I hope they know what they're doing by removing CENTER. Currently, there's no way to replicate its behaviour from CSS (CSS2). (And no, text-align: center ain't the same.)
Lol, flamebait? Was Slashdot taken by Microsoft fanboys while I was not looking? The next thing I'll see is somebody praising DRM for allowing you to enjoy your music.
Why not "Microsoft won't get money from me until they move to my side and get rid of DRM"? Or, "Microsoft won't get paid for such a crappy OS"?
One of the uses of virtualization is testing. Probably Microsoft is tired of seeing how everything is broken in their newest DRM OS, so they want to make it easier for developers to try. (Personally, if I were offered such a possibility, I'd work hard to make sure it doesn't run on Vista.)
Think of it as a petri dish. You can try your software under Vista in the same way as you can try whether some organism can coexist with AIDS or not.
Microsoft loves GUIDs. They look so enterprisey and scream of "stop looking, keep consuming".
What a pompous fool. If you want to spike your crap with digital AIDS, go ahead. I wasn't planning on using it, but now that you add Digital Restrictions Malware to it, I'll make sure to pirate it.
Even if the evolutionary theory is actually closer to an hypothesis (and there'll be people who will argue against this, but I don't need to), a sound, probably incomplete (numerical probability) hypothesis is better than a cheap wildcard solution to every problem that can't stand on its own. As for your statement that "faith" is a problem, think a little more about what "faith" is. Think about it the next time you go to sit-- will the chair hold you? I don't know for sure, and I sure as hell don't have blind faith on that (if I don't have faith on Santa, the tooth fairy, or your favourite imaginary friend, how would I have faith in a chair!?). I sit on it because I need to, and because it's likely that it'll stand my weight. Likewise, I go out because I need to, and because it's likely that I won't get robbed or killed, though I would be an idiot if I had such faith. Faith is for idiots. Smart people work on informed guesses, and never convert initial assumptions into facts by art of magic.