I don't think you're being fair. Not every person who believes in religion is a blind-faither who thinks that Jeezus Chriist personally intervened in their life to give them the big $20 payoff for their scratch-off lottery ticket.
There are very intelligent and reasonable arguments for the existence of a power, designer or creator aside from the strict "protein soup" theory of evolution. Granted, your facebook poster thanking the "Lord" for saving cousin Fred may not be considering those issues, but that doesn't mean they haven't in the past, and it is a mistake to take such a cavalier approach to dismissing an entire system of belief.
In fact, there's compelling evidence to support that fact that civilization could have never occurred without religion, and sneering at a system of belief and life that helps people deal with crisis and provides moral and behavioral guidelines to those in need is condescending at best, and arrogant and mean-spirited at worst.
One of the things I dislike the most when I read the modern-day comments on Slashdot is the haughty elitism that's so common in the +5 modded posts. Like there's this implicit belief that everyone who doesn't think the way the you do must therefore be a dullard, redneck, or worse: Republican.
If it helps some poor family member who's loved one has just suffered a major medical crisis to publicly thank "The Lord" for his continued existence, then by all means, thank "The Lord". Or light a scented candle. Or dance naked under the moonlight. Who cares?
One day, I suspect you'll be harshly confronted by your own arrogance, and become deeply ashamed. It is on that day, sir, that you'll become an adult.
Why aren't IEC reactors based on Farnsworth's designs taken more seriously? From what I understand, IEC's have been more effective at producing fusion, and they are cheap to build. People even build them in the garage. From everything I've read, no one really takes the "fusor" seriously in the fusion science realm, and it's considered a dead line of inquiry. I've never understood why.
Depends on when. If Superman had fscked with Spidey when he had his Captain Universe mojo (post Acts of Vengance, prior to battle with Tri-Sentinel) Superman would have gotten his butt kicked back to krypton.
This is such a common fallacy - it frustrates me every time I see it. Let's conduct a very simple logical experiment:
I'm a business owner. If a kid walks by and smashes out my front window, I need to have the window replaced.
This causes me to call the window shop, who then call their supply chain, and pay their employees all the way down the line. Great economic growth, right? I'm adding to the economy, right?
So under that thinking, we'd be helping the economy if my window got smashed out every week. Hell, even better, smash them all out, every day. Then my neighbor's windows too! Pretty soon, we'll have a roaring economy, right?
Do you see the fallacy here? The error in your thinking?
Spending tax money on an economy does not add to the system, it detracts from it, the same way smashing a window out does. True, you may see local fluctuations in certain sectors (the window repair businesses) but overall, you're detracting from the system.
Tax and spend is the same concept, only on a much greater scale. You're detracting from the economy in total, to provide for local "appearance" of growth.
You can argue whether welfare is a necessary program, and that's a good debate to have. Please don't fall for the absurd notion that it is somehow good for the economy. It's not. It's a terrible burden on everyone, including the recipient.
Browsing the list of shrieking replies to your well considered, and well written post is depressing. Whenever I see the pathos riddled arguments of either side of this debate, I just get bored and annoyed.
In my opinion, unless a person is an actual scientist, with real qualifications, the only legitimate, objective standpoint is the one that you've so succinctly described:
Do the things that make sense now, that have concrete benefits - save fuel, reduce costs, etc. Avoid hysteria and dogma, and simply admit that there are a lot of open questions right now.
Anyway, thanks for being a point of calm objectivity in a storm of un/semi-educated opinions.
I think you really nailed my point, and more succinctly.
The other replies to my post are rushing to point out that I can still use web workers with map/reduce to achieve the same effect.
While those other posters are correct, my point is that this should be baked in to the language. I agree with you, they are basically dodging the bullet here.
I've felt like javascript has huge potential to be the Next Big Thing(tm) in parallel computing because it is already so inherently asynchronous and functional.
I'd like to see them do the sorts of things Microsoft is doing with c# - things like Parallel.ForEach, but transparent.
My initial sense of this, is that they are making a huge mistake here. I'll have to do more research, but my feeling is that they are moving in the wrong direction with this decision.
One of the really cool "baked in" things with functional style language is their fundamental support for horizontal scaling across CPUs. My hope has been that javascript evolves towards this, so that the generic suite of functional methods become massively performant on a larger scale with map/reduce/fold/each calls.
Closures present a bottleneck here, but it seems like a reasonable runtime could make some intelligent prediction about whether the isolated function is a closure or not, and ship it off to a different CPU/thread depending on optimization strategies, or even estimated closure size. Even better, this could be done at runtime with some runtime optimization based on execution metrics of an anonymous/declared function in-context.
At the point of calling the map/reduce/fold/each function, the runtime should be able to decide whether to parallelize out the call, or even use some language extensions to let the developer specify the threading.
The point is, now that they're making this decision, all of those options are gone from FF. And at a terrible time too. As we move toward CPU architectures that encourage parallelism, Mozilla is taking js off the table as a first-class language able to easily exploit those new architectures. That strikes me as a huge mistake, and I'm struggling to understand the rationale.
From what I understand the most severe engineering challenge with designing a portable STM will be overcoming the vibration issues. Current "home brew" STMs are built in a sandbox for this reason, afaik.
Unity is pretty much the best option. It is cross platform, easy to develop in, and has everything you need to get started fast. The documentation is excellent, the community is supportive and the entry-level version is free. Unity
Sorry to reply to myself, but I'm a big believer in not bitching about a problem without offering a solution.
Slashdot corporate overlords, if you're browsing these posts for reactions to the change, here's a suggestion: consider the metafilter business model.
Put a slashdot poll up and ask the users if they'd be willing to pay $5 per year to get rid of all the ads, and eliminate 90% of the trolls (most trolls aren't willing to pay to troll).
Make karma mean something - those with excellent or above karma get a discounted (or free) rate. Same way we can turn off Ads now.
I know that I, for one, would jump at the chance to help fund slashdot, and to help make it great again.
No, this appears (on the surface) to be another gasp at squeezing revenue from "the slashdot".
While I don't blame them for wanting to be profitable, I can just site here and think of the high level exec meetings that had subjects like "We need to find creative ways to monetize our user base" and someone said "I know! lets take 'ask slashdot' and make it a revenue opportunity...".
I suspect there was internal resistance to it, but most of that probably faded with CdrTaco leaving.
Slashdot polls have been replaced with Splunk marketing surveys, Ask Slashdot is now a vendor sponsored forum...
I give it two years before slashdot is indistinguishable from the Yahoo! main page.
Typical corporate acquisition stuff. I suspect, based on some other clues, that Geeknet is suffering from decreased revenue pressures. I suspect that ThinkGeek sales have tanked, and no one knows why (and apparently no one realized that pushing cheap, low quality crap with clever marketing at twice the sane price is not a good long term sales strategy). Sourceforge has got to be operating at a loss, and has been hemorrhaging projects as mass defections over to github and others occur.
So I think there's probably a lot of corporate pressure to make slashdot start earning more to make up for shortfalls.
We'll see more of this, it was predictable. The user base will continue to fall off, and soon we'll be getting emails ala Facebook - "We haven't seen you in a while! Do you know what you've been missing!?! Come back and be an awesome geek! Derf derf..."
Sorry if I'm coming across as too cynical here, I'm not against companies earning money. What frustrates my is the overall cluelessness of executives that think the proper path to profitability it to turn this (once great) site into McSlashdot.
I've read the comments in this post, and I agree with most of them, especially the guys who argue in favor of avoiding frameworks all together. I get where they're coming from, I really do. In fact, not so long ago, I would have made the same argument. The problem is, to do web development, you really need some sort of "framework" or "library". It doesn't make sense to recreate the wheel for URL parsing, environment param passing (ala CGI), etc...
At the end of the day, you'll need to pick some set of utilities in order to be successful at a web project. It's debatable what constitutes a "framework" vs "utility library", because there's a lot of grey area there.
Of all the ones I've used, ASP.Net, ASP.Net MVC, Sprint, Struts, Cake, Symfony, Django and homegrown, I'm landed pretty solidly on Django.
The reason for this is how it really gets out of your way, and just lets you code. It has all sorts of fancy features if you want them, but you aren't compelled to use them.
It's lightweight (I run several Django + postgres instances on a VM with 500mb of RAM with sub 200ms response times), the different parts are pluggable, you can swap out the ORM, templating engine or admin parts for anything you like, and it embraces the pythony way of doing things.
There isn't a bunch of black magic, it's really very straight forward. The framework code is very readable, and minimal. The core "framework" is really just a set of python modules that give you very handy utilities - URL routing, ORM, Templates, etc...
Don't like sessions? No problem, just don't include that module. Don't like the ORM? No problem, roll your own, or use something else.
Want a full blown framework with automatic admin interface, and all the bells and whistles? Great, it's there for you if you want it.
In general, I've been one to avoid frameworks because I agree with the sentiment of many other posters on here - frameworks do the "easy 80%" quite nicely, but the final 20% ends up being weeks and weeks fighting with the framework.
Django is the only one I've encountered that doesn't have this problem. I've never had to fight with Django at all. My only problems were a lack of solid python skills, but one I picked that up, Django was beautiful and made a lot of sense.
It's the most intelligently designed, practical, useful framework I've ever found, and has done what no other framework I've used has done: actually saved me enormous amounts of time.
This is the same argument I see frequently made by liberals - "the top x percent control y percent of the wealth". The problem is that it is simply nonsense. Wealth isn't a finite resource. There's isn't a "fixed amount" of wealth, so that if one person has it, I must therefore not have it. It simply doesn't work that way.
Wealth is an infinite resource. It can be created at any time, by anyone. Whenever you create something from nothing, be it a product or a service, that someone else wants and is willing to pay/trade for - you have created wealth.
There is no natural limit to the amount of wealth a person can create.
Want some wealth? Go make it. Go create. Stop trying to take it from other people.
The only limits that exist on the amount of wealth you can create are artificial ones. So, while it is true that you can create anything you want (given enough time and effort) the reality is that government/corporate protectionism will frequently work very hard to prevent you from succeeding via taxation, regulation, artificial monopolies (patents, copyright, etc...) and other means.
The result of this is an artificial scarcity of wealth - and this gives rise to the common liberal notion that we need to "share the wealth" that exists more equitably. While tempting (via a simplistic worldview), the "take from others and give to me" approach is clearly unsustainable.
The only reasonable, correct solution to the problem is to reduce or eliminate the artificial limits placed on wealth creation.
This isn't as simple as "tax less" or "eliminate government". This needs to be a fundamental shift in public philosophy toward self-reliance and individualism. We need to get to the point where people are as protective of their "right to create" as Texans are of their right to bear arms. We need to start viewing government intervention at the federal level with hostility and distrust, rather than looking to it for solutions.
We need to find a way to shift the emotional outrage and tribalism of the current political spectrum away from the "us v/s them" mentality, towards a "we all agree on these points" menatility, starting with: 1) Eliminate corporate lobbying. Eliminate corporate campaign contributions. Eliminate corporate "personhood". 2) Eliminate federal entitlement programs. Handle that at the state and local levels. 3) Eliminate wasteful spending, and taxation, on things like the "War on Drugs" 4) Stop telling people what they can and can't do with their own bodies, and who they can and can't marry. 5) End American Imperialism. Detach from all armed conflicts unless we're directly attacked. Impeach any president who authorizes an act of war without a declaration of war. 6) Eliminate software and business process patents 7) Reduce the term of copyright to fourteen years, as intended by the founders 8) Implement a flat tax at a consistent rate. (Get over your envy of the wealthy - stop trying to take their money, go make your own)
To many, these points seem "extreme", however with the exception of #4, this is how the country was founded, and how it came to greatness and prosperity faster than any other nation in history.
The moral? When you leave people the hell alone, and give them the freedom to succeed - guess what? They do.
"We need a 3rd entity (which I believe must come out of a combination of the Tea Party & OWS movements which share more in common with each other then they do with either the Dems/Repubs), an entity willing to raise taxes, eliminate tax loopholes, maintain liberty, and make painful cuts."
Yes, some sort of third party that stands against corporate corruption, are staunch fiscal conservatives, who want to end involvement in foreign wars, who want to stop throwing people in jail for smoking pot, and who want social conservatives to leave us the hell alone and let us live our lives as we choose.
When we start over, perhaps we should come up with some sort of document that limits the powers of government so that we won't suffer these sorts of abuses. Oh wait...
I'm in OK for business, and the quake got me out of bed last night.
I grabbed clothes and rushed downstairs ready to get out of the building, if needed, but when I got down there no one else was panicking or anything, so I supposed I was the only one who over-reacted. It was about 11pm.
It was pretty intense - I lived near San Diego for six years, and felt plenty of tremors, but the quake last night was the scariest I've felt. Possibly because I wasn't on the ground floor of the hotel.
Other than that, it wasn't a big deal. No one was streaming from the hotel and there weren't throngs of people screaming. There were lots of people calling the front desk asking if there had been an accident (no one could believe that it was a quake).
Interestingly, there was another quake the night before as well, a 4.2 (the guy at the front desk told me). That one didn't even wake me up though.
Referring to people you disagree with on the political spectrum in a purposefully derogatory manner is a banal ad-hominem attack that weakens your point, and calls into question any presumption of intelligence or objectivity that may have otherwise been granted to your argument and your personal character.
I'm in the same boat. I think my slashdot days are coming to an end. This site used to be a place for fascinating discussion on technical topics, and some of the smartest people in the world would post and discuss. I would learn a lot from people who were smarter and more experienced than I am, in multiple scientific fields and disciplines.
Now, it just seems like a hyper left-wing, group think, opinion-before-fact, pathos ridden tabloid.
The actual intellectual elite that used to post here have been replaced by self-convinced pseudo-intellectual elitists, who make sweeping emotional assertions about things that they know nothing about (like economics, running a business, effective forms of government, taxation, spending, etc...) and then get modded +5 by others of their philosophical bent, until the only thing you can see when browsing in the comments is a flood of sound-bite ready, catch phrase stuffed, propaganda regurgitation that has little or no *real* research supporting it.
The editors feed into this, of course, because the higher number of posts a topic has, the more value they can convey to the advertisers. I wonder if this is part of the reason Taco left - the amazing thing he created is no more, and he just finally had to face that fact and move on.
I'm not sure how/if this can be fixed, because I miss the old slashdot. I wish there was something like it somewhere else. If I could find such a thing, I'd never look back.
FWIW, many languages support both OO and Functional paradigms, even statically typed ones like C#. C# has traditionally been a classic OO language, but has recently been converting itself to a first-class FP language as well, which is an impressive technical feat for a static language.
OO isn't necessarily the best paradigm for any given development challenge, I've found myself migrating away from it towards more of a FP style over the recent years, and have been happy with the results.
Python and PHP are both good examples of hybrid OO/FP languages.
There are many things to consider here, OS, Language, Environment, UI, Hardware - all of these things are important to a successful developer, and the choice about which to focus on can be intimidating.
I like Linux as a hosting platform over Windows, while I've architected solutions on both platforms, I've had greater success and stability overall with Linux servers.
For Linux hosting, the main web technologies are Java, PHP and Python. Of those three, PHP is (by far) the most prevalent.
I'll take some time to run down some pros/cons of each language and describe some of the most popular frameworks for each.
Java:
This is the mainstay of enterprise development, for web development the most popular and current platform is called Spring. Struts is also popular, and many folks use a combination of Struts and Spring (though this is becoming less common as people migrate more towards 100% Spring based). Java runs under a servelet container, there are several of these available (both commercial and free) but many people chose to just go with the Tomcat servelet container from the Apache project. These frameworks are MVC (Model-View-Controller) frameworks, which is a technological abstraction which can be a useful paradigm for larger applications.
Pros: Java is great for enterprise development where you have "waterfall" SDLC and strict requirements. It's is great when you need rigid B2B interfaces/services and critical, formally modeled infrastructure. There is also a massive developer pool available for Java development.
Cons: The language is becoming outdated, as both Sun and now Oracle have failed to effectively update it. Spring makes Java web development possible, but it is not nearly as capable as some other frameworks. Time to market is slower, as Java requires much more code and "plumbing" to get up and running. Java/Spring aren't as flexible as some other technologies, and don't lend themselves as well to rapid, agile, iterative development.
PHP:
PHP can be considered the "grandfather" of the internet. It was the first very popular server-side language after the CGI days, and to date, most web sites on the internet are still running PHP. While early versions of PHP suffered from major security concerns, this is no longer the case, and PHP has evolved into a first class language with very moderns features such as OOP and Functional (map/reduce/inline anonymous fuctions/closures/etc...) features. There are several great frameworks available for PHP, two of the most popular are CakePHP and Symfony (yes, the spelling is correct). PHP apps can have great performance, I've developed some very large and demanding high volume sites with PHP, and they've handled the load with no problems.
Pros: Great language, easy to deploy, reasonable developer pool, good framework availability, dynamic language that lends itself well to agile/iterative/flexible development. Great library support, probably better than any other web language due to its maturity.
Cons: If not designed properly PHP applications can become a huge mess. The MVC frameworks available for PHP are good, but they aren't the best of the options I've seen. PHP works great with MySQL (LAMP is very common) but is not as tightly integrated with other backends. Due to the architecture of PHP, the framework overhead can be a significant performance bottleneck. This can be mitigated by effective use of FastCGI or WSGI servers, but then you're moving away from the simplicity of mod_php in apache, and that's really where PHP shines (simplicity of deployment). Overall, I generally recommend PHP for smaller applications that need a quick turnaround, but I generally look elsewhere for larger, more complex applications. While the PHP community is still vibrant, many people are migrating over to Python.
Python: Python is a very popular general purpose language, but has only really become popular for web development fairly recently (last five years).
I don't know if FP makes sense to start people off with, I feel like it is almost a maturity or (to be completely corny) a 'zen' thing in programming. One of the "first you have to know the rules, in order to break the rules" kinds of things. I feel like a developer has to go through 'maturation' stages: the rigors of learing main() procedural based stuff, encountered the problems with it, learned how OOP solves (tries to solve?) those problems, but then been bitten by the over-architecting madness that OOP can lead to, then get enticed by the flexibility of FP and dynamic languages. Once you have gone through those stages, you can really start to appreciate each different style based on its relative merits, and pick the one that most effectively applies to the problem domain.
I develop everything from firmware on 8 bit micros (where I do almost 100% procedural C or ASM), to Flash/Flex/Javascript RIA's (where I do almost entirely FP) to rigid B2B services (where I tend to formalize interfaces using OOP) to Android apps (where I'm forced to use Java). Each realm has an appropriate technology, and I think it really helps developers to go through all of the various "phases" of development to really stop taking the "everything looks like a nail" approach.
For agile, rapidly changing, evolving problem domains I like python/django (for web), for large shop, multi-team business critical stuff I like UML and C#/Java, for UI's I tend to do Flex/Air or HTML5 stuff. Each of those really lends itself to different development paradigms, and I think it is valuable to be conversant in all of them.
It would make me happy, however, if Google were to support Python as a first class language on Android. Java is fine, but I think the small app, rapidly evolving nature of mobile development lends itself to a more dynamic/functional approach than a formal OOP approach. Other than that, the Android platform is pretty nice to work with.
And while I'm griping, I *really* wish Python would add anonymous inlines. Sometimes the lambdas just don't cut it, and the "keep the implementation close to the call" principal is always violated when you're forced to stick a function label on a block of code.
> and they completely lacked the ability to understand even functional, much less OO programming
I just want to take a moment to clarify terms. I think what you meant was procedural programming, not functional. Functional Programming (FP) is a reasonably advanced paradigm that many feel is a successor to OOP, it is used widely in languages such as Scheme, LISP, Python, ECMA Script derivatives, etc...
I don't have time to list all the pros/cons/differences/theories here, but a basic example off the top of my head (using js and jquery) would be: $(collection).each(function() {
$(this).click(function(event)
{
$.ajax({
url:...,
data:...,
success: function(data, status, xhr)
{
$(data).each(function()
{//do something
}
},...
});
}); });
This kind of thing is a fairly basic example of anonymous inlines, but I think you can see it is a wildly different paradigm than OOP. FP is also frequently associate with map, reduce, and other set based iterators, generally with lambdas or anonymous inlines.
By and large FP is more common in dynamic languages, but some statically typed languages also have a pretty good go at it, for example, C# has been moving towards FP and has pulled off some pretty impressive (painful?) tricks in order to do it statically.
In my experience, OOP advocates are pretty passionate about how much they dislike FP, the code above is a good example - strong OOP guys really hate that stuff.
I don't think you're being fair. Not every person who believes in religion is a blind-faither who thinks that Jeezus Chriist personally intervened in their life to give them the big $20 payoff for their scratch-off lottery ticket.
There are very intelligent and reasonable arguments for the existence of a power, designer or creator aside from the strict "protein soup" theory of evolution. Granted, your facebook poster thanking the "Lord" for saving cousin Fred may not be considering those issues, but that doesn't mean they haven't in the past, and it is a mistake to take such a cavalier approach to dismissing an entire system of belief.
In fact, there's compelling evidence to support that fact that civilization could have never occurred without religion, and sneering at a system of belief and life that helps people deal with crisis and provides moral and behavioral guidelines to those in need is condescending at best, and arrogant and mean-spirited at worst.
One of the things I dislike the most when I read the modern-day comments on Slashdot is the haughty elitism that's so common in the +5 modded posts. Like there's this implicit belief that everyone who doesn't think the way the you do must therefore be a dullard, redneck, or worse: Republican.
If it helps some poor family member who's loved one has just suffered a major medical crisis to publicly thank "The Lord" for his continued existence, then by all means, thank "The Lord". Or light a scented candle. Or dance naked under the moonlight. Who cares?
One day, I suspect you'll be harshly confronted by your own arrogance, and become deeply ashamed. It is on that day, sir, that you'll become an adult.
Why aren't IEC reactors based on Farnsworth's designs taken more seriously? From what I understand, IEC's have been more effective at producing fusion, and they are cheap to build. People even build them in the garage. From everything I've read, no one really takes the "fusor" seriously in the fusion science realm, and it's considered a dead line of inquiry. I've never understood why.
Depends on when. If Superman had fscked with Spidey when he had his Captain Universe mojo (post Acts of Vengance, prior to battle with Tri-Sentinel) Superman would have gotten his butt kicked back to krypton.
This is such a common fallacy - it frustrates me every time I see it. Let's conduct a very simple logical experiment:
I'm a business owner. If a kid walks by and smashes out my front window, I need to have the window replaced.
This causes me to call the window shop, who then call their supply chain, and pay their employees all the way down the line. Great economic growth, right? I'm adding to the economy, right?
So under that thinking, we'd be helping the economy if my window got smashed out every week. Hell, even better, smash them all out, every day. Then my neighbor's windows too! Pretty soon, we'll have a roaring economy, right?
Do you see the fallacy here? The error in your thinking?
Spending tax money on an economy does not add to the system, it detracts from it, the same way smashing a window out does. True, you may see local fluctuations in certain sectors (the window repair businesses) but overall, you're detracting from the system.
Tax and spend is the same concept, only on a much greater scale. You're detracting from the economy in total, to provide for local "appearance" of growth.
You can argue whether welfare is a necessary program, and that's a good debate to have. Please don't fall for the absurd notion that it is somehow good for the economy. It's not. It's a terrible burden on everyone, including the recipient.
Bravo, sir. Well said.
I just wanted to stop by to say thanks.
Browsing the list of shrieking replies to your well considered, and well written post is depressing. Whenever I see the pathos riddled arguments of either side of this debate, I just get bored and annoyed.
In my opinion, unless a person is an actual scientist, with real qualifications, the only legitimate, objective standpoint is the one that you've so succinctly described:
Do the things that make sense now, that have concrete benefits - save fuel, reduce costs, etc. Avoid hysteria and dogma, and simply admit that there are a lot of open questions right now.
Anyway, thanks for being a point of calm objectivity in a storm of un/semi-educated opinions.
I think you really nailed my point, and more succinctly.
The other replies to my post are rushing to point out that I can still use web workers with map/reduce to achieve the same effect.
While those other posters are correct, my point is that this should be baked in to the language. I agree with you, they are basically dodging the bullet here.
I've felt like javascript has huge potential to be the Next Big Thing(tm) in parallel computing because it is already so inherently asynchronous and functional.
I'd like to see them do the sorts of things Microsoft is doing with c# - things like Parallel.ForEach, but transparent.
Something like: ... });
[parallel(threads=5)]
{
{ firstName="clay", lastName="gulick"},
{ firstName="clay", lastName="gulick"},
{ firstName="clay", lastName="gulick"},
}.each(function(item) {
My initial sense of this, is that they are making a huge mistake here. I'll have to do more research, but my feeling is that they are moving in the wrong direction with this decision.
One of the really cool "baked in" things with functional style language is their fundamental support for horizontal scaling across CPUs. My hope has been that javascript evolves towards this, so that the generic suite of functional methods become massively performant on a larger scale with map/reduce/fold/each calls.
Closures present a bottleneck here, but it seems like a reasonable runtime could make some intelligent prediction about whether the isolated function is a closure or not, and ship it off to a different CPU/thread depending on optimization strategies, or even estimated closure size. Even better, this could be done at runtime with some runtime optimization based on execution metrics of an anonymous/declared function in-context.
At the point of calling the map/reduce/fold/each function, the runtime should be able to decide whether to parallelize out the call, or even use some language extensions to let the developer specify the threading.
The point is, now that they're making this decision, all of those options are gone from FF. And at a terrible time too. As we move toward CPU architectures that encourage parallelism, Mozilla is taking js off the table as a first-class language able to easily exploit those new architectures. That strikes me as a huge mistake, and I'm struggling to understand the rationale.
From what I understand the most severe engineering challenge with designing a portable STM will be overcoming the vibration issues. Current "home brew" STMs are built in a sandbox for this reason, afaik.
Boneheaded malformed link. *sigh*. Here: Unity
Unity is pretty much the best option. It is cross platform, easy to develop in, and has everything you need to get started fast. The documentation is excellent, the community is supportive and the entry-level version is free. Unity
Sorry to reply to myself, but I'm a big believer in not bitching about a problem without offering a solution.
Slashdot corporate overlords, if you're browsing these posts for reactions to the change, here's a suggestion: consider the metafilter business model.
Put a slashdot poll up and ask the users if they'd be willing to pay $5 per year to get rid of all the ads, and eliminate 90% of the trolls (most trolls aren't willing to pay to troll).
Make karma mean something - those with excellent or above karma get a discounted (or free) rate. Same way we can turn off Ads now.
I know that I, for one, would jump at the chance to help fund slashdot, and to help make it great again.
No, this appears (on the surface) to be another gasp at squeezing revenue from "the slashdot".
While I don't blame them for wanting to be profitable, I can just site here and think of the high level exec meetings that had subjects like "We need to find creative ways to monetize our user base" and someone said "I know! lets take 'ask slashdot' and make it a revenue opportunity...".
I suspect there was internal resistance to it, but most of that probably faded with CdrTaco leaving.
Slashdot polls have been replaced with Splunk marketing surveys, Ask Slashdot is now a vendor sponsored forum...
I give it two years before slashdot is indistinguishable from the Yahoo! main page.
Typical corporate acquisition stuff. I suspect, based on some other clues, that Geeknet is suffering from decreased revenue pressures. I suspect that ThinkGeek sales have tanked, and no one knows why (and apparently no one realized that pushing cheap, low quality crap with clever marketing at twice the sane price is not a good long term sales strategy). Sourceforge has got to be operating at a loss, and has been hemorrhaging projects as mass defections over to github and others occur.
So I think there's probably a lot of corporate pressure to make slashdot start earning more to make up for shortfalls.
We'll see more of this, it was predictable. The user base will continue to fall off, and soon we'll be getting emails ala Facebook - "We haven't seen you in a while! Do you know what you've been missing!?! Come back and be an awesome geek! Derf derf..."
Sorry if I'm coming across as too cynical here, I'm not against companies earning money. What frustrates my is the overall cluelessness of executives that think the proper path to profitability it to turn this (once great) site into McSlashdot.
I've read the comments in this post, and I agree with most of them, especially the guys who argue in favor of avoiding frameworks all together. I get where they're coming from, I really do. In fact, not so long ago, I would have made the same argument. The problem is, to do web development, you really need some sort of "framework" or "library". It doesn't make sense to recreate the wheel for URL parsing, environment param passing (ala CGI), etc...
At the end of the day, you'll need to pick some set of utilities in order to be successful at a web project. It's debatable what constitutes a "framework" vs "utility library", because there's a lot of grey area there.
Of all the ones I've used, ASP.Net, ASP.Net MVC, Sprint, Struts, Cake, Symfony, Django and homegrown, I'm landed pretty solidly on Django.
The reason for this is how it really gets out of your way, and just lets you code. It has all sorts of fancy features if you want them, but you aren't compelled to use them.
It's lightweight (I run several Django + postgres instances on a VM with 500mb of RAM with sub 200ms response times), the different parts are pluggable, you can swap out the ORM, templating engine or admin parts for anything you like, and it embraces the pythony way of doing things.
There isn't a bunch of black magic, it's really very straight forward. The framework code is very readable, and minimal. The core "framework" is really just a set of python modules that give you very handy utilities - URL routing, ORM, Templates, etc...
Don't like sessions? No problem, just don't include that module. Don't like the ORM? No problem, roll your own, or use something else.
Want a full blown framework with automatic admin interface, and all the bells and whistles? Great, it's there for you if you want it.
In general, I've been one to avoid frameworks because I agree with the sentiment of many other posters on here - frameworks do the "easy 80%" quite nicely, but the final 20% ends up being weeks and weeks fighting with the framework.
Django is the only one I've encountered that doesn't have this problem. I've never had to fight with Django at all. My only problems were a lack of solid python skills, but one I picked that up, Django was beautiful and made a lot of sense.
It's the most intelligently designed, practical, useful framework I've ever found, and has done what no other framework I've used has done: actually saved me enormous amounts of time.
This is the same argument I see frequently made by liberals - "the top x percent control y percent of the wealth".
The problem is that it is simply nonsense.
Wealth isn't a finite resource. There's isn't a "fixed amount" of wealth, so that if one person has it, I must therefore not have it. It simply doesn't work that way.
Wealth is an infinite resource. It can be created at any time, by anyone. Whenever you create something from nothing, be it a product or a service, that someone else wants and is willing to pay/trade for - you have created wealth.
There is no natural limit to the amount of wealth a person can create.
Want some wealth? Go make it. Go create. Stop trying to take it from other people.
The only limits that exist on the amount of wealth you can create are artificial ones. So, while it is true that you can create anything you want (given enough time and effort) the reality is that government/corporate protectionism will frequently work very hard to prevent you from succeeding via taxation, regulation, artificial monopolies (patents, copyright, etc...) and other means.
The result of this is an artificial scarcity of wealth - and this gives rise to the common liberal notion that we need to "share the wealth" that exists more equitably. While tempting (via a simplistic worldview), the "take from others and give to me" approach is clearly unsustainable.
The only reasonable, correct solution to the problem is to reduce or eliminate the artificial limits placed on wealth creation.
This isn't as simple as "tax less" or "eliminate government". This needs to be a fundamental shift in public philosophy toward self-reliance and individualism. We need to get to the point where people are as protective of their "right to create" as Texans are of their right to bear arms. We need to start viewing government intervention at the federal level with hostility and distrust, rather than looking to it for solutions.
We need to find a way to shift the emotional outrage and tribalism of the current political spectrum away from the "us v/s them" mentality, towards a "we all agree on these points" menatility, starting with:
1) Eliminate corporate lobbying. Eliminate corporate campaign contributions. Eliminate corporate "personhood".
2) Eliminate federal entitlement programs. Handle that at the state and local levels.
3) Eliminate wasteful spending, and taxation, on things like the "War on Drugs"
4) Stop telling people what they can and can't do with their own bodies, and who they can and can't marry.
5) End American Imperialism. Detach from all armed conflicts unless we're directly attacked. Impeach any president who authorizes an act of war without a declaration of war.
6) Eliminate software and business process patents
7) Reduce the term of copyright to fourteen years, as intended by the founders
8) Implement a flat tax at a consistent rate. (Get over your envy of the wealthy - stop trying to take their money, go make your own)
To many, these points seem "extreme", however with the exception of #4, this is how the country was founded, and how it came to greatness and prosperity faster than any other nation in history.
The moral? When you leave people the hell alone, and give them the freedom to succeed - guess what? They do.
"We need a 3rd entity (which I believe must come out of a combination of the Tea Party & OWS movements which share more in common with each other then they do with either the Dems/Repubs), an entity willing to raise taxes, eliminate tax loopholes, maintain liberty, and make painful cuts."
Yes, some sort of third party that stands against corporate corruption, are staunch fiscal conservatives, who want to end involvement in foreign wars, who want to stop throwing people in jail for smoking pot, and who want social conservatives to leave us the hell alone and let us live our lives as we choose.
Now where could we find a party like that?
When we start over, perhaps we should come up with some sort of document that limits the powers of government so that we won't suffer these sorts of abuses. Oh wait...
I just want to take a moment to thank you for you the time you've taken to post such well-written and thoughtful comments.
Bravo, sir. Please continue.
I'm in OK for business, and the quake got me out of bed last night.
I grabbed clothes and rushed downstairs ready to get out of the building, if needed, but when I got down there no one else was panicking or anything, so I supposed I was the only one who over-reacted. It was about 11pm.
It was pretty intense - I lived near San Diego for six years, and felt plenty of tremors, but the quake last night was the scariest I've felt. Possibly because I wasn't on the ground floor of the hotel.
Other than that, it wasn't a big deal. No one was streaming from the hotel and there weren't throngs of people screaming. There were lots of people calling the front desk asking if there had been an accident (no one could believe that it was a quake).
Interestingly, there was another quake the night before as well, a 4.2 (the guy at the front desk told me). That one didn't even wake me up though.
Referring to people you disagree with on the political spectrum in a purposefully derogatory manner is a banal ad-hominem attack that weakens your point, and calls into question any presumption of intelligence or objectivity that may have otherwise been granted to your argument and your personal character.
I'm in the same boat. I think my slashdot days are coming to an end. This site used to be a place for fascinating discussion on technical topics, and some of the smartest people in the world would post and discuss. I would learn a lot from people who were smarter and more experienced than I am, in multiple scientific fields and disciplines.
Now, it just seems like a hyper left-wing, group think, opinion-before-fact, pathos ridden tabloid.
The actual intellectual elite that used to post here have been replaced by self-convinced pseudo-intellectual elitists, who make sweeping emotional assertions about things that they know nothing about (like economics, running a business, effective forms of government, taxation, spending, etc...) and then get modded +5 by others of their philosophical bent, until the only thing you can see when browsing in the comments is a flood of sound-bite ready, catch phrase stuffed, propaganda regurgitation that has little or no *real* research supporting it.
The editors feed into this, of course, because the higher number of posts a topic has, the more value they can convey to the advertisers. I wonder if this is part of the reason Taco left - the amazing thing he created is no more, and he just finally had to face that fact and move on.
I'm not sure how/if this can be fixed, because I miss the old slashdot. I wish there was something like it somewhere else. If I could find such a thing, I'd never look back.
FWIW, many languages support both OO and Functional paradigms, even statically typed ones like C#. C# has traditionally been a classic OO language, but has recently been converting itself to a first-class FP language as well, which is an impressive technical feat for a static language.
OO isn't necessarily the best paradigm for any given development challenge, I've found myself migrating away from it towards more of a FP style over the recent years, and have been happy with the results.
Python and PHP are both good examples of hybrid OO/FP languages.
There are many things to consider here, OS, Language, Environment, UI, Hardware - all of these things are important to a successful developer, and the choice about which to focus on can be intimidating.
I like Linux as a hosting platform over Windows, while I've architected solutions on both platforms, I've had greater success and stability overall with Linux servers.
For Linux hosting, the main web technologies are Java, PHP and Python. Of those three, PHP is (by far) the most prevalent.
I'll take some time to run down some pros/cons of each language and describe some of the most popular frameworks for each.
Java:
This is the mainstay of enterprise development, for web development the most popular and current platform is called Spring. Struts is also popular, and many folks use a combination of Struts and Spring (though this is becoming less common as people migrate more towards 100% Spring based). Java runs under a servelet container, there are several of these available (both commercial and free) but many people chose to just go with the Tomcat servelet container from the Apache project. These frameworks are MVC (Model-View-Controller) frameworks, which is a technological abstraction which can be a useful paradigm for larger applications.
Pros: Java is great for enterprise development where you have "waterfall" SDLC and strict requirements. It's is great when you need rigid B2B interfaces/services and critical, formally modeled infrastructure. There is also a massive developer pool available for Java development.
Cons: The language is becoming outdated, as both Sun and now Oracle have failed to effectively update it. Spring makes Java web development possible, but it is not nearly as capable as some other frameworks. Time to market is slower, as Java requires much more code and "plumbing" to get up and running. Java/Spring aren't as flexible as some other technologies, and don't lend themselves as well to rapid, agile, iterative development.
PHP:
PHP can be considered the "grandfather" of the internet. It was the first very popular server-side language after the CGI days, and to date, most web sites on the internet are still running PHP. While early versions of PHP suffered from major security concerns, this is no longer the case, and PHP has evolved into a first class language with very moderns features such as OOP and Functional (map/reduce/inline anonymous fuctions/closures/etc...) features. There are several great frameworks available for PHP, two of the most popular are CakePHP and Symfony (yes, the spelling is correct). PHP apps can have great performance, I've developed some very large and demanding high volume sites with PHP, and they've handled the load with no problems.
Pros: Great language, easy to deploy, reasonable developer pool, good framework availability, dynamic language that lends itself well to agile/iterative/flexible development. Great library support, probably better than any other web language due to its maturity.
Cons: If not designed properly PHP applications can become a huge mess. The MVC frameworks available for PHP are good, but they aren't the best of the options I've seen. PHP works great with MySQL (LAMP is very common) but is not as tightly integrated with other backends. Due to the architecture of PHP, the framework overhead can be a significant performance bottleneck. This can be mitigated by effective use of FastCGI or WSGI servers, but then you're moving away from the simplicity of mod_php in apache, and that's really where PHP shines (simplicity of deployment). Overall, I generally recommend PHP for smaller applications that need a quick turnaround, but I generally look elsewhere for larger, more complex applications. While the PHP community is still vibrant, many people are migrating over to Python.
Python:
Python is a very popular general purpose language, but has only really become popular for web development fairly recently (last five years).
Thanks for the thoughtful response!
I don't know if FP makes sense to start people off with, I feel like it is almost a maturity or (to be completely corny) a 'zen' thing in programming. One of the "first you have to know the rules, in order to break the rules" kinds of things. I feel like a developer has to go through 'maturation' stages: the rigors of learing main() procedural based stuff, encountered the problems with it, learned how OOP solves (tries to solve?) those problems, but then been bitten by the over-architecting madness that OOP can lead to, then get enticed by the flexibility of FP and dynamic languages. Once you have gone through those stages, you can really start to appreciate each different style based on its relative merits, and pick the one that most effectively applies to the problem domain.
I develop everything from firmware on 8 bit micros (where I do almost 100% procedural C or ASM), to Flash/Flex/Javascript RIA's (where I do almost entirely FP) to rigid B2B services (where I tend to formalize interfaces using OOP) to Android apps (where I'm forced to use Java). Each realm has an appropriate technology, and I think it really helps developers to go through all of the various "phases" of development to really stop taking the "everything looks like a nail" approach.
For agile, rapidly changing, evolving problem domains I like python/django (for web), for large shop, multi-team business critical stuff I like UML and C#/Java, for UI's I tend to do Flex/Air or HTML5 stuff. Each of those really lends itself to different development paradigms, and I think it is valuable to be conversant in all of them.
It would make me happy, however, if Google were to support Python as a first class language on Android. Java is fine, but I think the small app, rapidly evolving nature of mobile development lends itself to a more dynamic/functional approach than a formal OOP approach. Other than that, the Android platform is pretty nice to work with.
And while I'm griping, I *really* wish Python would add anonymous inlines. Sometimes the lambdas just don't cut it, and the "keep the implementation close to the call" principal is always violated when you're forced to stick a function label on a block of code.
> and they completely lacked the ability to understand even functional, much less OO programming
I just want to take a moment to clarify terms. I think what you meant was procedural programming, not functional. Functional Programming (FP) is a reasonably advanced paradigm that many feel is a successor to OOP, it is used widely in languages such as Scheme, LISP, Python, ECMA Script derivatives, etc...
I don't have time to list all the pros/cons/differences/theories here, but a basic example off the top of my head (using js and jquery) would be:
..., ..., //do something ...
$(collection).each(function()
{
$(this).click(function(event)
{
$.ajax({
url:
data:
success: function(data, status, xhr)
{
$(data).each(function()
{
}
},
});
});
});
This kind of thing is a fairly basic example of anonymous inlines, but I think you can see it is a wildly different paradigm than OOP. FP is also frequently associate with map, reduce, and other set based iterators, generally with lambdas or anonymous inlines.
By and large FP is more common in dynamic languages, but some statically typed languages also have a pretty good go at it, for example, C# has been moving towards FP and has pulled off some pretty impressive (painful?) tricks in order to do it statically.
In my experience, OOP advocates are pretty passionate about how much they dislike FP, the code above is a good example - strong OOP guys really hate that stuff.