Every couple of years, Microsoft completely changes their computing paradigms to ape what they perceive is a threat from some other company, and when the threat is gone, they just drop the initiative and move on to the next thing.
Who the fuck mods this blather up as insightful?
I can still run 16 bit DOS programs on windows. I can still use DDE for IPC. COM and COM+ haven't gone away with.NET. The Win32 API seems to have grown quite a few "Ex" appendages to API calls, but it hasn't changed since Win32s -- a forward compatibility hack for Win16 that still works even now. Why don't you present just some trivial little shred of evidence that you have any idea what you're talking about?
Because if there's one thing young kids know how to do, it's untaring and running shell scripts. No, wait, that's two.
Double-click, then... well thanks the paranoia of linux installations (unfortunate that it's warranted), open a shell in the same directory, chmod +x the shell script, then double-click again.
If it's written in java, this begs the question, why isn't it in an executable.jar file?
perl2exe basically statically links your perl app with the perl executable. While this might produce a fairly portable solution, consider the consequence of what will happen when you need to make a change, especially if it's a localized one (e.g. "this dev machine needs the data from a different file"). You are now distributing an opaque chunk of data that you cannot work with. You are losing one of the primary advantages of using a "prototyping" language in the first place. Consider simply distributing perl with the application. It's not like it's terribly complex, it's just an installer exe you double-click, take the defaults, and reboot (or convince it to accept the changes to your PATH in some more convoluted way).
Of course if you're simply trying to distribute a closed-source perl app, more power to you, just be aware that it's not really all that hard to get source code back from the perl executable.
I was starting to read that, then decided to skip it. The New York Times has to pay a copy writer to write these stories that slashdot merely links to. All they ask in return is for a registration, and it's free, for christs sake.
I was just ranting and raving to myself this morning about how corporate america is turning us into sharecropping wage slaves, but the people who are really trying to force others to produce for them without fair renumeration are the leeches who repost copyrighted data. No, I don't think you should be locked up in a cage for it like Disney and Adobe would prefer it, but at the very least, you should be ashamed of yourself. tangentially, I still love gnutella and use it for some music (not really an en masse scale), but the RIAA declared war on its own customers. It's a pretty paltry justification, but my point is, are you ready to say the NYT deserves the same treatment? They're not saints by any means, but copy writers have to eat too.
You might also want to read The Case Against The Case For Christ when you're finished. It's not quite as polished a rebuttal as it could be, but edifying reading nonetheless.
All algorithm theory should be taught in assembly.
I'm sooooo tempted to believe I've just been trolled, but what the hey. First off, algorithmic theory is typically taught in terms of turing machines -- if that's not low-level enough for you, I don't know what is. Beyond that though, you're absolutely wrong. It's like teaching the physics concepts of torque by making students work on cars.
Look at the way EE's are taught
Not relevant. This is not EE. You might have had a point with respect to software engineering (and I'm not even sure then). Dijkstra 's rolling in his grave, though he was certainly fretting about this awful conflation of CSC with engineering long before then.
In my experience, I've often found that EEs converted into programmers are better programmers than people with CS degrees, and I think this is the reason. EEs are taught how to think early on at the component level.
One reason is that most EE degree programs are hard. People who finish an EE degree are often just plain more determined and better problem solvers as a result, because the CS curriculum is just not made challenging enough -- partly because it's still such a new field.
Look, you want a better office suite or HRIS system or oil exploration mapper, you hire a programmer. You want a new font optimization, dataflow model, or signal analysis method, you hire a CS person (the last being something an EE person would probably shine at too). God forbid you should get a CS person who can only think in terms of a particular machine design.
Now, if that isn't biased crap then I must be the guy bending over at goatse.cx. The rest of the article goes on in much the same way.
Biased? Perhaps. It also happens to be true. Your visceral hatred of Microsoft has you defending Java's disgustingly verbose syntactic conventions for properties where yep, they got that wonderful beans model, then proceeded to do absolutely NOTHING with the language syntax to support it.
But the ironic and funny thing is, by polarizing the issue so, you appear to credit Microsoft with the invention of a more intuitive language syntax for property accessors. "Use C#, rabid java partisans on slashdot hate it!"
I bet you thought those were direct property accesses, right? I wouldn't expect such a staunch defender of The One True Faith to actually look up the mechanisms of property declarations...
I used to like that K-meleon existed... until I saw the gaping chasm of distance the developers preferred to keep from the rabble that was their user culture.
There are no binaries of K-meleon that use anything but an old Mozilla 0.9 component, because of some bug that prevents a feature from working... a feature that's broken anyway in the version embedding the 0.9 component. Compiling mozilla is awesomely cumbersome and resource-hungry on win32, so it's one of those things most people would rather have a binary for. The developers have outright refused to release a current binary, and they are now only privately emailing their latest build around and refusing to release it generally, which aside from being quite probably a material violation of the MPL, speaks volumes about the development culture. Too bad.
I pick my tools based on what works, not based on the marketing. I listen to other developers, check news groups and web commentary, and eventually pick the right tool for the job.
In other words... word of mouth. Works for me too.
Re:How to become a Perl Guru
on
Ask Larry Wall
·
· Score: 2
I've already purchased the Camel book and that's where I'll go after the Llama book. What would you recommend after that? Perl Cookbook? Advanced Perl? Memorize all the PerlDocs?
program something. grab CPAN modules that look interesting to you. go through their source. understand how they work, thoroughly.
Sorry for the delay, but you can learn more about the object-as-argument syntax by looking up "generic programming" on google.
Try this this for starters. It's part of a dylan tutorial that explains multiple dispatch (which should clue you in as to why you'd pass the object as an arg)
OOP is not about a foo.bar syntax, it's about defining the bar method as "belonging to" foo in some fashion such that it access the object scope of foo./me looks up and sees all the apologists for the trolls attacking him. now that's irony
Actually, device drivers make a great case for monad-based functional programming, which you can think of as "narrowly targeted OO" since it has a sort of object scope (actually type containment), but doesn't require reifying everything. Using the monad to represent the state of the device such as registers, it becomes easy to tell where the state of the device affects computation, because, it's mandatory to taint anything that depends the state with the type of the monad.
It's operating systems in general that make a good case for OOP, and indeed if you look at any modern OS, you'll see objects everywhere (it's harder to see in linux, check out the virtual memory stuff in freebsd for a good example).
As for production uses for OOP... heck, I'm posting this with mozilla, which can switch out the text widget I'm posting this with at runtime (XBL). If that's not an example of components, I don't know what is.
I find your example somewhat disingenuous -- you compare a table-driven design (for a data-driven problem that has a well-defined fixed schema, unlike say, a web browser or operating system) and compare it with a bad OO design fit only for a first-year student. Stuff like "isa-mania" simply does not happen in well-designed OO systems. Anyway, I'm willing to take back calling you a kook, based on your posts, but that web page is still screaming it (c'mon, red baiting?). I really suggest you take a look at production systems like CLIPS and LISA, which I think will appeal to your affinity with table-driven logic.
Actually the "multiple nouns" thing is taken care of by multiple dispatch. When you need things like dynamically defined ranking for your dispatch, you probably need something like a production system -- and even CLIPS code tends to be rather object-oriented. That or you can use a MOP, ala CLOS. You don't even mention the existence of such things in your anti OOP rants, and it leads me to believe you read a few C++ and Java books before going off on your extended tear.
PizzaTool, eh? Written in OO PostScript, shows a full color preview of the pizza? I have a feeling this is derivative of burritotool, which was a much less "clever" app used at Sun, but sufficed to fax in orders for a local mexican restaurant. I learned of that app at sun, and found some documentation for it floating around in the internal network, but the mention doesn't appear to have escaped anywhere google can find it.
and what about browsing on a device where a mouse is a pain in the ass? My libretto is run pretty exclusively by keyboard shortcuts because using the mouse isn't an option in most circumstances where I use the libretto.
In the case of the mozilla pie menus, the keyboard usage is unaffected on windows. Hitting the menu key will pop up the standard vertical menu, which is keyboard-navigable. The pie menu is unfortunately pretty lousy in windows with keyboard only -- there's no key to dismiss the damn thing for example. I just have it for the neato factor now.
With a mouse, it's reasonably ok, though I don't think it makes the selected item obvious enough (this is where apple's zooming icons would actually be very appropriate). Still, it's not great for a right-hander like me to try to flick the mouse northeast.
It just occurs to me what pansies we seem to be when talking about how hard it is to flick the mouse a particular direction. Then again, ergonomic principles go double and more for the guys hauling around power socket drivers on a car assembly line, so I suppose it pays to keep ergonomics in mind all the time...
OOP is at risk of becoming an "elitist" technology if educators don't do a better job of properly teaching and justifying OOP.
I doubt this. OO is as mainstream as structured programming became when it was the rage. It is in fact so entrenched now that it's a bit of a *problem* to do even minor tweaks to enhance OOP itself, such as method(object,arg,arg) instead of object.method(arg,arg) in order to better support multiple dispatch, since it looks too much like non-OO code, regardless of the scoping of the actual implementations of method.
In fact, it's hard to convince people to write things in functional styles when OO is always the rage. Probably because functional's disdain for variables has made it hard to know where to put state, but there's a good amount of herd mentality too.
It needs a better fence or else more such "trolls" are eventually going to kill its acceptance with superficial, but catchy attacks.
Actually, I take the opposite view: it's kooks like Tablizer that make honest criticisms of OOP look bad.
Every couple of years, Microsoft completely changes their computing paradigms to ape what they perceive is a threat from some other company, and when the threat is gone, they just drop the initiative and move on to the next thing.
.NET. The Win32 API seems to have grown quite a few "Ex" appendages to API calls, but it hasn't changed since Win32s -- a forward compatibility hack for Win16 that still works even now. Why don't you present just some trivial little shred of evidence that you have any idea what you're talking about?
Who the fuck mods this blather up as insightful?
I can still run 16 bit DOS programs on windows. I can still use DDE for IPC. COM and COM+ haven't gone away with
Because if there's one thing young kids know how to do, it's untaring and running shell scripts. No, wait, that's two.
... well thanks the paranoia of linux installations (unfortunate that it's warranted), open a shell in the same directory, chmod +x the shell script, then double-click again.
.jar file?
Double-click, then
If it's written in java, this begs the question, why isn't it in an executable
Unix comes with a perl obfuscator.
cat
perl2exe basically statically links your perl app with the perl executable. While this might produce a fairly portable solution, consider the consequence of what will happen when you need to make a change, especially if it's a localized one (e.g. "this dev machine needs the data from a different file"). You are now distributing an opaque chunk of data that you cannot work with. You are losing one of the primary advantages of using a "prototyping" language in the first place. Consider simply distributing perl with the application. It's not like it's terribly complex, it's just an installer exe you double-click, take the defaults, and reboot (or convince it to accept the changes to your PATH in some more convoluted way).
Of course if you're simply trying to distribute a closed-source perl app, more power to you, just be aware that it's not really all that hard to get source code back from the perl executable.
I was starting to read that, then decided to skip it. The New York Times has to pay a copy writer to write these stories that slashdot merely links to. All they ask in return is for a registration, and it's free, for christs sake.
I was just ranting and raving to myself this morning about how corporate america is turning us into sharecropping wage slaves, but the people who are really trying to force others to produce for them without fair renumeration are the leeches who repost copyrighted data. No, I don't think you should be locked up in a cage for it like Disney and Adobe would prefer it, but at the very least, you should be ashamed of yourself. tangentially, I still love gnutella and use it for some music (not really an en masse scale), but the RIAA declared war on its own customers. It's a pretty paltry justification, but my point is, are you ready to say the NYT deserves the same treatment? They're not saints by any means, but copy writers have to eat too.
You might also want to read The Case Against The Case For Christ when you're finished. It's not quite as polished a rebuttal as it could be, but edifying reading nonetheless.
To be reading furniture manualizations is easy. Understand not people say who hard to read they are.
To get the full authentic effect of that, you have to run it back and forth through babelfish about a half-dozen times...
I just might then be able to afford to live in San Francisco. Probably need more than that though.
Okay, how about "rococo"?
My votes are for "elephantine", "bletcherous", "monstrosity", and best of all, "bogus".
Sure, Assembly is tough.
asm is hardly tough. Show me subtraction in lambda calculus. Now that's tough.
All algorithm theory should be taught in assembly.
I'm sooooo tempted to believe I've just been trolled, but what the hey. First off, algorithmic theory is typically taught in terms of turing machines -- if that's not low-level enough for you, I don't know what is. Beyond that though, you're absolutely wrong. It's like teaching the physics concepts of torque by making students work on cars.
Look at the way EE's are taught
Not relevant. This is not EE. You might have had a point with respect to software engineering (and I'm not even sure then). Dijkstra 's rolling in his grave, though he was certainly fretting about this awful conflation of CSC with engineering long before then.
In my experience, I've often found that EEs converted into programmers are better programmers than people with CS degrees, and I think this is the reason. EEs are taught how to think early on at the component level.
One reason is that most EE degree programs are hard. People who finish an EE degree are often just plain more determined and better problem solvers as a result, because the CS curriculum is just not made challenging enough -- partly because it's still such a new field.
Look, you want a better office suite or HRIS system or oil exploration mapper, you hire a programmer. You want a new font optimization, dataflow model, or signal analysis method, you hire a CS person (the last being something an EE person would probably shine at too). God forbid you should get a CS person who can only think in terms of a particular machine design.
> Yeah, I haven't slept in 32 hours. That's funny to me.
Looking at the amazing pitch-cam all night, were ya?
Now, if that isn't biased crap then I must be the guy bending over at goatse.cx. The rest of the article goes on in much the same way.
Biased? Perhaps. It also happens to be true. Your visceral hatred of Microsoft has you defending Java's disgustingly verbose syntactic conventions for properties where yep, they got that wonderful beans model, then proceeded to do absolutely NOTHING with the language syntax to support it.
But the ironic and funny thing is, by polarizing the issue so, you appear to credit Microsoft with the invention of a more intuitive language syntax for property accessors. "Use C#, rabid java partisans on slashdot hate it!"
I bet you thought those were direct property accesses, right? I wouldn't expect such a staunch defender of The One True Faith to actually look up the mechanisms of property declarations...
Apparently, you can also crash a Windows box by pouring beer into the fan outlet of the power supply. Code to be posted soon.
When you figure out how to do this remotely, let me know.
Really.
I could use the beer.
Sure, aren't those header files source code? *smirk*
I used to like that K-meleon existed ... until I saw the gaping chasm of distance the developers preferred to keep from the rabble that was their user culture.
... a feature that's broken anyway in the version embedding the 0.9 component. Compiling mozilla is awesomely cumbersome and resource-hungry on win32, so it's one of those things most people would rather have a binary for. The developers have outright refused to release a current binary, and they are now only privately emailing their latest build around and refusing to release it generally, which aside from being quite probably a material violation of the MPL, speaks volumes about the development culture. Too bad.
There are no binaries of K-meleon that use anything but an old Mozilla 0.9 component, because of some bug that prevents a feature from working
I pick my tools based on what works, not based on the marketing. I listen to other developers, check news groups and web commentary, and eventually pick the right tool for the job.
In other words... word of mouth. Works for me too.
I've already purchased the Camel book and that's where I'll go after the Llama book. What would you recommend after that? Perl Cookbook? Advanced Perl? Memorize all the PerlDocs?
program something. grab CPAN modules that look interesting to you. go through their source. understand how they work, thoroughly.
> Laden or unladen?
binladen
(someone had to say it)
Sorry for the delay, but you can learn more about the object-as-argument syntax by looking up "generic programming" on google.
/me looks up and sees all the apologists for the trolls attacking him. now that's irony
Try this this for starters. It's part of a dylan tutorial that explains multiple dispatch (which should clue you in as to why you'd pass the object as an arg)
OOP is not about a foo.bar syntax, it's about defining the bar method as "belonging to" foo in some fashion such that it access the object scope of foo.
Actually, device drivers make a great case for monad-based functional programming, which you can think of as "narrowly targeted OO" since it has a sort of object scope (actually type containment), but doesn't require reifying everything. Using the monad to represent the state of the device such as registers, it becomes easy to tell where the state of the device affects computation, because, it's mandatory to taint anything that depends the state with the type of the monad.
... heck, I'm posting this with mozilla, which can switch out the text widget I'm posting this with at runtime (XBL). If that's not an example of components, I don't know what is.
It's operating systems in general that make a good case for OOP, and indeed if you look at any modern OS, you'll see objects everywhere (it's harder to see in linux, check out the virtual memory stuff in freebsd for a good example).
As for production uses for OOP
I find your example somewhat disingenuous -- you compare a table-driven design (for a data-driven problem that has a well-defined fixed schema, unlike say, a web browser or operating system) and compare it with a bad OO design fit only for a first-year student. Stuff like "isa-mania" simply does not happen in well-designed OO systems. Anyway, I'm willing to take back calling you a kook, based on your posts, but that web page is still screaming it (c'mon, red baiting?). I really suggest you take a look at production systems like CLIPS and LISA, which I think will appeal to your affinity with table-driven logic.
Actually the "multiple nouns" thing is taken care of by multiple dispatch. When you need things like dynamically defined ranking for your dispatch, you probably need something like a production system -- and even CLIPS code tends to be rather object-oriented. That or you can use a MOP, ala CLOS. You don't even mention the existence of such things in your anti OOP rants, and it leads me to believe you read a few C++ and Java books before going off on your extended tear.
PizzaTool, eh? Written in OO PostScript, shows a full color preview of the pizza? I have a feeling this is derivative of burritotool, which was a much less "clever" app used at Sun, but sufficed to fax in orders for a local mexican restaurant. I learned of that app at sun, and found some documentation for it floating around in the internal network, but the mention doesn't appear to have escaped anywhere google can find it.
and what about browsing on a device where a mouse is a pain in the ass? My libretto is run pretty exclusively by keyboard shortcuts because using the mouse isn't an option in most circumstances where I use the libretto.
In the case of the mozilla pie menus, the keyboard usage is unaffected on windows. Hitting the menu key will pop up the standard vertical menu, which is keyboard-navigable. The pie menu is unfortunately pretty lousy in windows with keyboard only -- there's no key to dismiss the damn thing for example. I just have it for the neato factor now.
With a mouse, it's reasonably ok, though I don't think it makes the selected item obvious enough (this is where apple's zooming icons would actually be very appropriate). Still, it's not great for a right-hander like me to try to flick the mouse northeast.
It just occurs to me what pansies we seem to be when talking about how hard it is to flick the mouse a particular direction. Then again, ergonomic principles go double and more for the guys hauling around power socket drivers on a car assembly line, so I suppose it pays to keep ergonomics in mind all the time...
OOP is at risk of becoming an "elitist" technology if educators don't do a better job of properly teaching and justifying OOP.
I doubt this. OO is as mainstream as structured programming became when it was the rage. It is in fact so entrenched now that it's a bit of a *problem* to do even minor tweaks to enhance OOP itself, such as method(object,arg,arg) instead of object.method(arg,arg) in order to better support multiple dispatch, since it looks too much like non-OO code, regardless of the scoping of the actual implementations of method.
In fact, it's hard to convince people to write things in functional styles when OO is always the rage. Probably because functional's disdain for variables has made it hard to know where to put state, but there's a good amount of herd mentality too.
It needs a better fence or else more such "trolls" are eventually going to kill its acceptance with superficial, but catchy attacks.
Actually, I take the opposite view: it's kooks like Tablizer that make honest criticisms of OOP look bad.