When I think of isomorphism I think of two things that look different but have the same structure. If you had a set of functions that are synchronous and a set that are async, then maybe you can call the sets isomorphic. Or if you have a Python library that mimics a command line tool, then they could be isomorphic.
Isomorphic JavaScript = JavaScript that takes the same shape [in multiple environments].
You're thinking isomorphism as math terminology but it isn't. It's just borrowed from Greek. From a quick search it means "same shape" in regular English too!
Your nitpick would be akin to being annoyed by the use of "group" to mean "a number of people or things considered or classed together" because it has a specific meaning in math.
How about:
- It defines global variables. - The documentation is full of red warning messages and "this will be easier in the future" - The code is pretty unorganized and has some wild pieces in there. - do any of your friends use/heard of meteor?
The whole point of Meteor is to play with different approaches to web development that will be required in the future (if you want to build big distributed, interactive web apps). It's not finished yet, and they're pretty upfront about that.
It is faster to rewrite an app having written it once already, but still: it took half the time, had better user login/auth, and had sort-of real time multi-user support.
Meteor is very nice. Try it on a small project. The learning curve is easy.
People that don't or haven't tried to understand node.js or express like meteor. Picking up meteor is easier, but its not all that useful at the moment. There are other frameworks that are better than meteor and allow you to achieve the same end (realtime).
Don't get me wrong, it is neat, and I am glad they are exploring a new area of development, but promoting it as anything other than a pet project is misleading.
With Isobuild and Cordova, you'll be able to add a camera package
to your app and use one simple Camera.takePicture() API to take a
photo, and then type one command to build your app not just for the
browser, but for the iOS and Android app stores too.When I just started with Cordova, I went to a HTML5DEVCONF talk where the speaker tried to install (just install) Cordova in a 20m slot. He failed, his slides had all the ingredients (Xcode, jdk, ant, maven, npm, cordova, ios-sim, etc) but on the live demo his new machine failed because some of the many steps wasn't satisfied.
About using Cordova: again, for newcomers, it is so non-obvious: what do you do when your build fails? How do I debug this objective-c code again? Why the heck Cordova doesn't give me all the logs by default? ios-sim is an npm module that is compiled with a C compiler and the build process is navigated by rake - ruby-based make clone.
And to be honest, I still don't get why this requires a new package manager. NPM (with a utility library, perhaps) could perform most of these functions.
You can still use exactly the same code in the browser and on the server. Allowing stuff like server-side rendering on old browsers and JS rendering for the majority of users from a single piece of code.
If you are in a client browser (any client browser, no matter how old) and try to do HTTP.get('http://www.google.com') it will fail because of CORS restrictions. If you do that on the server or in a native app, it will succeed (because they do not have CORS restrictions).
I suppose it's nice that they bundle some functionality in like `camera`, but I don't see why that would be an "isopack" thing and not just an external library.
And anyway, doesn't building a framework-specific package disregard the "isometric" ideal: write once, run anywhere?
(as long as "anywhere" means that it's using meteor.)
"If you think about it, if we tried to build all of the above on top of npm, it would be npm in name only. Even if Meteor packages were in npm, you wouldn't use the npm tool to find or install packages (you'd use a wrapper that implemented the 'release snapshots', 'curation', 'repeatability' considerations), nor could you drop them directly into existing npm applications (per 'client vs server' and 'asset bundling')."
It's really just text and a few images, nothing fancy, an ordinary blog post - yet it freezes my browser for what feels like half a minute while it uses 100% CPU for rendering. What the fuck?!
Coupling the goal of building isomorphic apps with the need for a new way of managing packages to accomplish that goal doesn't make any sense. How you install packages and manage dependencies has absolutely no bearing on what you can or cannot do with those packages.
In other words, you can write fully isomorphic apps using npm as your package manager. We're already doing it.
I find really useful all the features they're launching but there's no way I'm going to pay for a 8Gb and quadcore server just for supporting 100 concurrent visitors...
I started building a real-time webapp with meteor and had to switch to express + primus which was a much more efficient solution (orders of magnitude).
I really hope they do something about it ASAP... I really enjoyed working with meteor and still use for small projects, but for a medium/big app? not yet...