Domain: infoq.com
Stories and comments across the archive that link to infoq.com.
Comments · 112
-
Good news?
This brings on the specter of legal action by Attachmate. While there has always been the thought that Mono could be sued by Microsoft, such as lawsuit would require Microsoft convincing a court that it was “just kidding” and the CLR/C# patent covenants are non-binding. Between their obligations to the ECMA standards body and the legal principal of equitable estoppel, the chance of this happening is slim to none. Attachmate is a completely different story. Even if they aren’t supporting it, they do own a product that is in direct competition with Xamarin’s future offerings. Without some sort of legal arrangement between Attachmate and Xamarin, the latter would face the daunting prospect of proving that their new development doesn’t use any the technology that the old one did. As a result of this, as well as the general uncertainty of any new product, some developers on the mono-android mailing list are stating that they are moving back to Java development for now. Source: http://www.infoq.com/news/2011/05/Mono-II
-
Re:HTML5 Is Not a Flash Replacement
I have not seen a WYSIWYG tool for any of these technologies that comes even close to the development environment of Flash
Not released yet, but this might be it: Adobe Edge
-
Just Ruby on Rails, or Ruby itself?
There's conflicting information out there:
They say it's just RoR:
http://netbeans.org/community/news/show/1507.html
They say it's the Ruby language too:
http://www.infoq.com/news/2011/01/ruby-dropped-in-netbeans-7
Who's right?
-
Manager's introduction to Test-Driven Development
Dave Nicolette gives a great talk called Manager's Introduction to Test-Driven Development in which he explains to non-technical people why software tests matter. You might want to skip the TDD-with-Excel example at the beginning and start with Dave's points about technical debt. Good luck.
-
Re:This is research?
Here, another one, just off the press:
http://www.infoq.com/news/2010/11/LINQ-Z3
Let us know if that is revolutionary enough.
-
Re:Making use of a databaseInteresting you mention PostgreSQL. There was a recent presentation on InfoQ by Andres Kutt, one of the architects of Skype, and they use PostgreSQL quite heavily (and are also contributors), and also put business logic in the databases. He was initially against this, but it's worked out well. They have use some other interesting components from PostrgeSQL, such as their messaging system. Worth seeing:
Learnings from Five Years as a Skype Architect
Quite like a decent system architecture gets turned into a convoluted pile of spaghetti by mindless technical changes, the functionality of your application will be turned into a similar mess by mindless changes in functionality.
-
Re:Great news
A interesting video on the topic is here: http://www.infoq.com/presentations/click-crash-course-modern-hardware
Seems a caching failure (wrong or missing data in the closest cache) is the most expensive in terms of computing speed today.
I think the latest designs from Intel and AMD have something like 3 levels of cache, each being smaller but faster then the previous.
So loading a segment of data into a computation goes something like HDD -> RAM -> L3 (one for the whole cpu) -> L2 (one pr core) -> L1 (one pr integer or floating point unit).
-
Re:Alternative Summary
Rich Hickey talked about incidental complexity in his keynote talk at the JVM Languages Summit 2009: http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey
It's worth watching.
If Pike thinks the Go language solves anything, he should probably watch this talk too. -
Re:Asynchronous and self modifying code.
"Functional programming" and "self-modifying" code are closer to opposites than synonyms. Functional programs work with immutable data, eliminating the confusion that ensues when things can change behind your back. Clojure makes functional programming efficient (via persistent data structures) and accessible to mainstream developers (on the JVM). Also, Clojure connects FP to an understandable model for state and time (see http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey). People have been taking design patterns to a concrete level for years now, it's called copy/paste reuse. Lisp has had the design patterns problem solved for decades, and Clojure is no exception.
-
Re:First! Lisp! Rant!
In Clojure you would likely use destructuring to dig pieces out of a sequence, avoiding explicit function calls altogether. Agreed that languages need more than just good naming conventions. In Clojure's case, that 'more' is a careful set of abstractions, including some for modeling time. A good conceptual overview on time, state, and identity is online at http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey.
-
Re:They pay the bills, so STFU
After many years[1] there finally seems to be some signs of progress being made on features that will help websites make things safer for their users:
http://www.infoq.com/news/2010/01/HTML-5-Sandbox-IFrame
http://people.mozilla.org/~bsterne/content-security-policy/[1] I actually tried to get people to do something about a similar problem 8 years ago:
http://lists.w3.org/Archives/Public/www-html/2002May/0021.html
http://www.mail-archive.com/mozilla-security@mozilla.org/msg01448.htmlFor years the browser and W3 have been focusing on adding "gas pedals", and their idea of brakes was "just make sure none of the hundreds of gas pedals we created are pressed", which is a bit trickier in the real world.
If they had added working "brake pedals" back then, stuff like the MySpace worm might not have happened. And ads and other 3rd party content might be more easily secured.
-
Scala
Java is legacy by now. It would be better left alone.
If you want more advanced features and a more complete thought out language, switch to Scala.
http://www.scala-lang.org/
I firmly belive that Scala will take over from java in the next years.
More info: http://www.infoq.com/news/2009/07/scala-replace-java -
Re:Of course it means the end.
I don't know, Itanium seems pretty impressive. This presentation appeared on slashdot awhile ago and does a good job of giving a face to the name Itanium instead of just reading "Failed processor line that was really expensive."
The huge amount of instruction-level parallelism (dependent on a very good compiler) really seems like the best way to do things. It's too bad it doesn't work out in practice.
-
Relevant talk
-
Re:"many developers are so intrigued"
I hate to sound like a Wikipedia faggot, but citations please?
Enebo mentions it in passing during this presentation: http://www.infoq.com/presentations/enebo-jruby
We have an internal RoR app that's used by quite a few people at once. We tried using JRuby a few months ago, but it just couldn't handle the load as effectively as Matz's Ruby implementation, which itself isn't all that good. This was on the same Solaris server, so I don't think it was a problem with Java or the server.
From our experience, JRuby is just too damn slow for anything serious. It takes the slow runtime of Ruby, adds in the bloat of Java, and in the end gives a really unpleasant experience to the users.
In the same presentation he bigs up the JVM as a Ruby runtime -- hotspot optimisation, great GC -- , but I have no personal experience to put up against yours.
-
Re:DP, Algorithms, OOP A&D, Threading, etc
Or unless you want to optimize your programs. (A must for all professional software and games.)
This should be an eye-opener, if you don’t know it already:
http://www.infoq.com/presentations/click-crash-course-modern-hardwareThis is definitely a huge point. Even for things like Java software for mobile phones!
-
Re:Fast forward...
Or type http://www.infoq.com/resource/presentations/click-crash-course-modern-hardware/en/slides/1.swf
And change the the number at the end to change slides
PS: I am no good in javascript, but the above, in FF 3.5/Linux, just displayed a page saying "true" -
Re:Even if PHP is running 10 times slower...
IBM is working on a PHP compiler to create bytecode for the JVM. Using P8 as it is called, you can run your compiled PHP programs on a java application server such as Tomcat or JBoss.
-
An architectural perspective
First, a few helpful links:
- Facebook architecture overview
- Facebook architecture presentation by Aditya Agarwal
- Amdahl's law
- Facebook uses many Hadoop nodes
- Facebook has 2nd largest Hadoop cluster
Amdahl's law says that if Facebook were to switch from PHP to C++, the best possible improvement in the overall processing time is proportional to the total time spent in PHP now. If PHP processing accounts for 90% of the time and they reduce that to zero, they'd have a 10x speedup. However, if it accounts for 10% of the time and they reduce it to zero, they'd have about a 10% speedup.
So, the question is: How much time (overall) is spent in PHP processing? My guess is not very much. As other posters have pointed out, there are disk accesses and MySQL. And quite a bit is cached in Memcached.
The original article is slashdotted now, so I'm not sure if it says what those 30k servers are doing, but Facebook has more than just PHP running. Perhaps a thousand of those servers are running Hadoop, probably calculating the social network.
From an architectural perspective, it probably does not make sense for them to optimize for processing speed (i.e., switch PHP to C++) if their performance is acceptable. That's because they face larger risks: modifiability and time to market pressures. They may worry that switching to a statically typed language (such as C++, but Java would be similar) would make new feature development slower. If they could have both, great, but these two quality attributes often trade off against each other. A design with better performance may hinder modifiability, and vice versa.
I don't mean to start a language war -- I'm speaking broadly about the idea that dynamically typed languages (PHP, Smalltalk, Ruby, Python,
...) yield programs that are faster to write and modify compared to statically typed languages (C, C++, Java). You may disagree with that generalization, but you may agree that others think it is true, and are therefore acting rationally if they choose a dynamic language when they want modifiability.Disclaimers: I knew Aditya in school but haven't spoken to him about Facebook; I am writing a book on software architecture.
-
An architectural perspective
First, a few helpful links:
- Facebook architecture overview
- Facebook architecture presentation by Aditya Agarwal
- Amdahl's law
- Facebook uses many Hadoop nodes
- Facebook has 2nd largest Hadoop cluster
Amdahl's law says that if Facebook were to switch from PHP to C++, the best possible improvement in the overall processing time is proportional to the total time spent in PHP now. If PHP processing accounts for 90% of the time and they reduce that to zero, they'd have a 10x speedup. However, if it accounts for 10% of the time and they reduce it to zero, they'd have about a 10% speedup.
So, the question is: How much time (overall) is spent in PHP processing? My guess is not very much. As other posters have pointed out, there are disk accesses and MySQL. And quite a bit is cached in Memcached.
The original article is slashdotted now, so I'm not sure if it says what those 30k servers are doing, but Facebook has more than just PHP running. Perhaps a thousand of those servers are running Hadoop, probably calculating the social network.
From an architectural perspective, it probably does not make sense for them to optimize for processing speed (i.e., switch PHP to C++) if their performance is acceptable. That's because they face larger risks: modifiability and time to market pressures. They may worry that switching to a statically typed language (such as C++, but Java would be similar) would make new feature development slower. If they could have both, great, but these two quality attributes often trade off against each other. A design with better performance may hinder modifiability, and vice versa.
I don't mean to start a language war -- I'm speaking broadly about the idea that dynamically typed languages (PHP, Smalltalk, Ruby, Python,
...) yield programs that are faster to write and modify compared to statically typed languages (C, C++, Java). You may disagree with that generalization, but you may agree that others think it is true, and are therefore acting rationally if they choose a dynamic language when they want modifiability.Disclaimers: I knew Aditya in school but haven't spoken to him about Facebook; I am writing a book on software architecture.
-
Kanban - samething but with coloured postits.
e.g.
http://www.infoq.com/resource/articles/agile-kanban-boards/en/resources/Fig1_task-board.jpgThe details being recorded in whichever bug/ticket tracking system you fancy.
-
Re:Anti-competitive?..
Sounds like Mozilla is securing Firefox; I imagine the average Slashdotter would approve of Microsoft doing to the same to IE. I don' t think this is related to anti-competitive behaviour
The browser, it has long been declared (and accepted) is a platform. Imagine Microsoft blocking "unapproved" software on the platform it controls — Windows... In the name of security...
No, the only real defense for Mozilla here is that, unlike Microsoft, they aren't a monopoly... Only one of the responders pointed this out...
-
Re:Oracle Palns.
Just a typo. It was supposed to be http://www.infoq.com/news/2009/11/oracle-sun-pains
-
Re:Oracle Palns.
The important stuff is in:
http://www.infoq.com/news/2009/11/oracle-sun-sceret-flies -
So who cares about the CLR/Mono anyways?
So I'm going to trot out a different perspective; enough others will thrash through the personalities under discussion here. In my view, Mono is essentially irrelevant. Some folks will use it to bridge apps around platforms, instead of Qt or a handful of other approaches. Yawn. Internally, Microsoft has done some pretty neat things with their various implementations of the CLR (the VM underlying C#). This is unsurprising, as they're well capable of hiring some pretty bright folks. But I doubt that any of that will ever really inform the broader computing community.
In contrast, the JVM seems to be undergoing a renaissance. There's tons of programming language work on the JVM these days: Scala, JRuby, Clojure, Jython, etc. Each of these are bringing their own communities and problem domains to the JVM, and have already broken new ground in language implementation and design. As for new frameworks, there's scalable computing work going on under the Hadoop project (Google filesystem, Bigtable, and map-reduce for-the-rest-of-us) and the really interesting related framework Cascading. With the JVM as an interoperability platform, these languages and various new frameworks all get to be combined together in fascinating new ways.
-
Languages? All the more reason...
If you want to develop for the iPhone, you will use Objective C. Your only other option is a web app, but providing that offline may or may not be allowed, and either way, it's not likely to expose the same APIs.
Contrast this to Windows Mobile which, being an actually open platform (or at least as open as any other proprietary OS), will support any language people care to port to it. That goes double for Android.
Me, I prefer Ruby. "Aha," you say, "That has iPhone support!" As many owners of jailbroken phones will tell you, it's not that you can't do this on the iPhone, it's that Apple might arbitrarily reject you for doing so.
-
Eclipse + ECF + XMPP (Jabber)
Eclipse offers realtime collaborative editing via XMPP and the Eclipse Communication Framework:
http://www.infoq.com/news/2008/06/eclipse-ganymede-ecf
Set up a Jabber server and away you go.
I have not tried this, so I can't speak to its quality. -
Cobol & Java migration made it easy ?
Well, couple of things.
First, part of their applications are using Java. Migration from Solaris to Linux is straightforward
:)Second, did they used a migration tool such as NACA (GPL) ?
http://www.infoq.com/news/2009/07/cobol-to-java -
Re:New MS browser
I understood Gazelle as a desperate response to the announcement of Google Chromium OS and then you put a female(that is important) researcher in the news and use you PR stalin organ just to shout the Google Chromium OS announcement down. Everyone know that Gazelle is vapourware.
And of course we have other funny spin as well:
* Will Google Chrome OS bankrupt Canonical?
* Guardian: Google Chrome OS: is it copying Microsoft's Gazelle or is it more like Splashtop?
* Microsoft's Web Browser-Based OS: Gazelle with a link to the research paper.Of couse the experimental study "Gazelle" is presented as the competitor. Not "Windows 7", ha ha.
Essentially Chrome OS shoots the cash cow, the bullets are cheap and it is fun. The Google OS is largely driven by the hardware manufacturers and their interest to lower OS target costs and get more better and more interface information. As it is branded Google Chromium OS you just expect it to support the browser but of course you can run every Linux desktop application you want and oops, the other cashs cows of Microsoft as Microsoft Office are not even available for the Linux platform.
The question for me is why no one attempted to create a Fox Operating System.
;-) To my knowledge the Google OS will not ship with KDE or Gnome but rather a lightweight ressource saving environment.For Microsoft it all feels a bit Berlin 1945, with Gazelle as the latest Wunderwaffe. Google is so scared about the competitor...
It is a fact, Google can seriously wreck Microsoft with a minor investment and that will make Microsoft do all the wonderful stuff that only competition can achieve. Of course the manufacturers like that.
-
Re:Back to basics
Go learn about Scrum/XP/etc that's what (I and a lot of people) to be the realistic approach for sw pm today, stay away from RUP/Waterfall
I would have to disagree with you there. While Scrum and XP are very much on the rise due to the whole "agile" buzzwordyness, RUP and Waterfall are still very much used today by a majority of companies. Neither of those are actually bad processes, it's usually how they're implemented or managed. A bad implementation of Scrum can kick you in the nuts just as much as a bad implementation of Waterfall.
It's all about how you manage your process and improve it to cut out the bits you don't need. This is the case for all development processes. Take Kanban* as example, where Agile can be used on a Waterfall process. Continual improvement.
-
Re:Should have used PHP.
> If your threading model is nasty or your memory access
> features too coarse grained or a number of other things get designed
> wrong at the language level and are by specification broken then you have problemsIn Ruby's case, you overcome this by using processes rather than threads.
> On top of that if you don't have competition in your compiler space
> then it doesn't matter if it's not part of the language spec any non
> scalable parts of the compiler implementation is by default a problem with your language.At the level we're talking about - 8M users - I think that compilation optimizations/bottlenecks are not the issue. It's about architecture. It doesn't matter if you're writing assembly language, you'll still need to scale out of one machine's memory space. I'm thinking stuff like Werner Vogel's discussions of CAP.
> A language is more than just its syntax it's
> also the available implementation and toolsYes, and I'd say that there's also the infrastructure surrounding the language - protocols, operating systems, caching tools, etc. Ruby is well suited to integrating with those sorts of things, which is why there are myriad techniques available for scaling Ruby apps.
All that said, I agree with your proposition - that some languages are well suited to some tasks. As some folks here have suggested, Twitter's messaging bus sounds like a perfect Erlang app.
-
Re:It's not the URL in the GET, it's URLs in the H
Ya, and this is a design decision I think. Each link contains a hash to a cached node of some sort, for direct access to each resource.
FYI: Director of Engineering discusses Facebook's architecture (1hr)
-
Re:Laziness Rules
I'm just going on the statements he made about his own (lack of) knowledge in this video.
-
Re:Java Was:C++
The next major release of Java (Java 7) is going to be 100% open source. Even if Sun (or IBM for that matter) drops the language, which is very unlikely, Java is going to persist as it has a strong community.
I don't think IBM would let Java drop and die. Nor would Google, for that matter. Both have invested too much into it. But neither seem to be particularly interested in evolving it further as a language or a platform. Today, Java is the conservative choice - that's part of its strength, but that's also what spells out its eventual demise. There's nothing wrong with that - there's always a need for a stable "legacy" platform, even if it's outdated, and Java is a good candidate for that role. But it's something worth keeping in mind when making career choice.
Note that it wasn't my argument, anyway. I foresee Java to be supported for decades to come. Just not in a dominant ("forall X. Must be written (X) => let's write X in Java!") role it used to be.
OSS - yes, that's a strong argument in favor of Java, but on its own it's not sufficient. If it's not good enough, who cares if it's OSS or not?
) It's true that the evolution of the Java language has been quite slow and conservative in the past. But I believe that the rise of new dynamic and hip languages with indeed cool features didn't pass Sun without notice. Java 7 is going to have closures, for example.
I'm sorry to tell you, but Java 7 won't have closures. It won't have a lot of other stuff that was hoped for, either - e.g. no RAII in form of "do" blocks (similar to C# "using"), no generics reification, no properties... basically it's going to be a very minor change as far as language is concerned. And there is no plan to have those in Java 8 either (indeed, there's no Java 8 schedule for now at all!). In fact, we don't even have a JSR for Java 7 yet, so God knows when that is going to be released, even...
It may come as a further blow that the guy who had the most deep and thought-out proposal for closures in Java - Neal Gafter - has joined Microsoft to work on
.NET languages. Here's what he had to say about closures in Java, and Java in general, since then.As for Groovy (and I think you should've mentioned Scala). It's all great, but the tooling is nowhere near as mature as that of Java - I mean IDE, debugging, and so on. Meanwhile, in
.NET land, I have first-class lambdas complete with type inference in C#, so the question of support doesn't even enter into it - it just works. -
InfoQ has the full news
Didn't read all the comments, but if noone here has already pointed it out, the original post is available here : http://www.infoq.com/news/2009/02/web-based-ide Please cite your sources newt time.
-
Re:Darcs vs. Git
the alternatives really don't have much compelling to offer
This is what I have been wondering about. One of the alternatives, Mercurial, does seem to be a compelling alternative to GIT. Would love to hear from anyone who has used both, especially WRT migrations from CVS and integration with Trac. We've been leaning towards Mercurial as it is mostly written in Python (vs C), implements much the same functionality in 1/3rd as many lines of code (according to http://www.infoq.com/articles/dvcs-guide), and is used by Mozilla, Sun, etc.
These comparisons matter now, but may not be so relevant in the future if either Git or Mercurial garners substantially more mindshare than the other. We would, ideally, like to stay ahead of the trends...
-
There's also the Eclipse Communication Framework
ECF home, articles at IBM DeveloperWorks, InfoQ.
From the latter: ECF is...
- Real-time communication and collaboration features for teams using Eclipse such as peer-to-peer file sharing, remote opening of Eclipse views, screen capture sharing, and real-time shared editing.
- A set of communications APIs and frameworks built upon existing protocols (like Google Talk, XMPP, SSH, HTTP/HTTPS, Rendevous, IRC, and others) for developers to add communications and messaging to their own Equinox-based plugins, or customize and extend the ECF applications.
-
Re:XMPP
Performance wise, XMPP bills itself as high performance messaging, but the developers are focused on the WAN. AMQP comparatively is ultra-high performance messaging with optimisations for the LAN.
This is confusing as for many projects there is limited need for ultra-high performance data rates. Numbers of the range 100,000 messages per second with latency under one millisecond. At this rate special engineering methods are required, XML, SSL, compression are too slow, focus is upon zero-copy processing, i.e. accessing and updating data in place, because the memory-bus is too slow to perform copies.
There is a discussion between one AMQP and one XMPP developer that sums this up:
>> So AFAIU, XMPP is not a serious candidate for high-volume messaging, right?
No, wrong, as with anything it will all depend on the capacity of your servers and the bandwidth you have available at your disposal, there is nothing stopping high-volume messaging over XMPP if you control the infrastructure.
http://www.mail-archive.com/jdev@jabber.org/msg19403.html
Another major advantage for AMQP is message routing. You can define which messages are routed to different sites by their content. Again this is an unusual requirement for many projects as they do not exist on such a scale for this to normally be an issue. The closest equivalent is SMTP routing by domain, you can find more discussion on this InfoQ article:
http://www.infoq.com/news/2008/08/amqp-progress
The main focus on AMQP is to appear a qualified messaging protocol for certified or guaranteed messaging with the necessary tools and support from vendors to promote its usage. XMPP can do a lot of the AMQP functionality already, but most of it is optional functionality rather than a primary design goal. If AMQP support appears in the Visual Studio Development System together with MMC modules for monitoring and administration, for example, its adoption could rapidly grow.
-
Re:Gripe Moan Bitch and Holler!
Ruby is the VB of the scripting world (I though it was funny)
-
Eclipse Communication Framework
ECF is an integrated Jabber (XMPP)-based protocol that allows collaborative work. Introduction here. "Real-time communication and collaboration features for teams using Eclipse such as peer-to-peer file sharing, remote opening of Eclipse views, screen capture sharing, and real-time shared editing."
Other Jabber products you might find useful are Coccinella with whiteboarding, etc.
-
Re:central
I don't think there is a good generic recommendation. It depends on your application.
The main thing that I think people need to do is to think beyond the notion of The One True Database and focus more on grouping data and related computation behind clean interfaces. Sometimes behind that interface you use a traditional SQL database, and sometimes you do something else. But so many people build systems where the database is both the internal API and the single integration point, turning a historical accident into a key architectural feature.
As examples of what people are doing once they think outside the SQL box, take a look at Dynamo, Bigtable, or Mnesia. But my point isn't that you should build your system around one of those instead; it's that you should be thinking of any given solution like that as a tool in your toolbox, something that your system might use for now.
-
Re:Open Source What??
This is much more informative than the summary...
From there:
Orbitz Worldwide, a leading global online travel company, has open sourced two monitoring tools Extremely Reusable Monitoring API (ERMA) and Graphite, a persistence and visualization component. ERMA is a home grown Java API and library that has been used in several web applications at Orbitz to capture monitoring statistics in the applications at run-time. It is the source of streams of events that are processed in order to raise alerts when a service is down or running slower than defined response time thresholds.
-
Recommended site: InfoQ
I think infoq.com has some wonderful resources on "general principles of good software design". In particular, I recommend reading Jean Jacques Dubray's terrific mini-book on composite software construction, which will definitely give you some serious food for thought.
Speaking for myself, I think perhaps the most important principle is to keep thinking until it's really right.
I've been around some extremely intelligent people in my time, and none of them ever got it right on the first pass. You think of solution "A", which leads you to think of solution "B", which finally lands you on solution "C", the right one. The point is, the only way you COULD have gotten to solution "C" is by way of "B", and so on.
Naturally, this means one has to spend enough time upfront to come up with the right idea. It is a mistake to think that EVERYTHING needs to be documented up front (the classic "waterfall" method), but you've really got to have the essential idea and its approach before you even touch that code.
To me, UML has become an increasingly important design tool for expressing the essence of a system before we get down into the trenches. -
Re:I'm sorry...
Then maybe you've just been too busy for keeping up with the news.
http://www.infoq.com/news/2008/04/maglev-gemstone-builds-ruby
and I'm not even a Rails developer, just a Ruby enthusiast. -
Re:RTMP?
Or maybe not...
"Coenraets noted that the data management features were not being open sourced at this time. The RTMP binary messaging channel is also not being included."
http://www.infoq.com/news/2007/12/blazeds -
Re:Distributed computing and "the cloud"
Gridgain http://www.gridgain.com/ is another great product with Spring and AOP-based grid computing. We have used it successfully after considering Terracotta, Gigaspaces, etc. It's very easy to use and has integration with ESB Mule. More info : http://www.infoq.com/news/2007/05/gridgain We are actually considering implementing a chatty client-server communication in XMPP
:) -
Re:Nice for quick simple web apps
Using EJB3 inside Grails: http://www.infoq.com/articles/grails-ejb-tutorial
... and Grails can use Java services via RMI, JNDI, or IoC. -
Re:About Parrot ..Yes.. but.. (from what I understand) unlike
.net and java, you will be able to compile binary versions of your applications for distribution Well, Parrot is actually much like the .NET VM. One reason Parrot was invented according to their own FAQ was because at the time, the .NET VM hadn't been released. Indeed, the .NET CLR now supports dynamically typed languages by making use of the Dynamic Language Runtime, like IronPython and IronRuby already use.
Compare the Parrot PIR and PASM intermediate languages to the .NET IL language. Basically, Parrot does a similar thing as the .NET Dynamic Language Runtime running on top of the Common Language Runtime (and yes, Parrot will support multiple languages like .NET too).
At the time when Parrot was started, there was basically only Java widespread for dynamic language support, but the Java VM did not support dynamic languages well.
So I'm not sure this is the revolution you're looking for. Here you have some example usages: http://www.parrotcode.org/examples/ There's nothing special about natively run code here in the sense you seem to be talking about. The point of the Parrot project is rather about uniting many languages behind a single bytecode that their interpreter can "compile" to a form that can be run by it, much like the concept of .NET. One can also check this out: Is it too late for Parrot VM? which pretty much repeat what I said. -
Re:Java? Fragmented?
Agreed 100% about the unfair commentary that there usually is on Java. But, Google are behaving rather bizarrely by on the one hand warning about the problems of forking and then on the other releasing their own JVM Dalvik instead of using JavaME. So they're going with Apache's dodgy non-GPL approach and further causing fragmentation of the Java platform right when sun is doing the right thing by releasing a GPL'ed Java and Red Hat and others have stepped up to the plate to integrate the OpenJDK work with IcedTea. Google aren't stupid, I wonder what they're game is? I suspect they're trying to GPLv3-proof themselves.
-
Re:Way to go Falling Leaf...
It's completely relevant. One license is based in copyright law, which is well vetted in the courts, and the other is an arbitrary restriction on usage that's completely new as of software (no one says you can only use BrandX hammers to use BrandX hammers, because there's actual competition in those markets).
It's even dubious that they've entered into a "contract". A contract has to have both parties agree to it with full knowledge of what it entails. It's completely unreasonable to expect every person who uses software to be able to decipher the legalese of an EULA, or to hire a lawyer to decipher it, and tell them how they can expect to use the software. The thing is, with places like GM and such, they could challenge software licenses, and might even win. But they have legal departments to decipher the EULA's, and make sure they're in compliance, so it's not worth their while to try to fight one. It's only worth it to the people who are actually affected by them, the smaller companies and individuals who get sued for not even violating the EULA. It's a control tactic that enables unfair business practices and stifles competition.
And as a developer, you have every right to distribute your work. But you do NOT have the right to tell people what to do with it, other than tell them that they can't make more copies (copyright, natch). If you don't want your software used for military purposes, don't sell it to the military. But if you DO sell it to the military, what gives YOU the right to tell them "You can only use this on non-combat systems"?
The most valid analogy I can think of: I own ALL the houses that you could buy. The ones that fit your budget, lifestyle and location (it solves a problem you have), and I'm willing to sell one to you. The catch is, if you buy one of my houses, you have to agree to not use it on Thursdays, and always have classical music playing at 50dB or louder, 24 hours a day. Seems fair, right? I get to dictate how you use what you buy from me, it's all there in the license/contract. It's either that, or just don't buy it. Your car has plenty of room for you to live in. Catching on yet?