What leads to stress and frustration is not the craving for the solution but rather the pressure to find the solution. Most of the time this kind of thing happens in day jobs because there is less emphasis on learning and more on getting things done.
I think the mobile landscape is going to look pretty barren in a few more years. Just like the desktops, we seem to near the consolidation of mobile OS market with weaker sides getting eliminated rapidly.
I think pebble is the next big thing and might even get rid of its dependence on the mobile phone in future. Just imagine Siri helping you get through your day with out taking the phone out of the pocket!
We worked on a startup product a few months which is currently shelved. It had a file system like interface and simplified moving files between dropbox, amazon S3, google docs and multiple accounts (any one with two dropbox accounts ?).
With all this google drive news, its pretty tempting to bring it back to life :)
This is what the future of online storage will be, but it won't be google/dropbox/amazon etc. but rather 'your wordprocessor'/'your email'/'your social network' etc.
adding a compatibility layer between storage networks is a temporary fix for when a standard is formed.
Actually, the new features introduced in C# increases developer productivity quite a bit. More importantly they increase the readability of code by cutting down on the repetitive stuff. Once some one uses LINQ, lambdas and dynamics its hard to go back.
Go look at any documentation or discussion of any non-Java language, and see their examples of using their sequence abstractions, or generators (yield), or first-class functions. Those are not ideas which are unique to C#.
If you just want to see a piece of code in C# that would have to be written totally differently in Java to be readable (unless you use some quite abstract third-party libraries like Guava to help) I picked one of my Stack Overflow answers at random: http://stackoverflow.com/questions/2966592/how-to-refactor-t...
... and yes, as a Java developer, I use Guava once in a while and I do JavaScript as part of my job as well and I do appreciate first-class function.
Typically the problems that functional features solve are filtering and transformation and yet most often than not I happen to solve them at the SQL layer (be it JPQL or straight up SQL).
Once you start thinking of your object model as data, you can do amazing things. Want to find all the types in your system that implement an interface and spin them up?
var rules =
AppDomain.CurrentDomain.GetAssemblies
.SelectMany(a => a.GetTypes())
.Where(t => typeof(ISecurityRule).IsAssignableFrom(t))
.Select(t => Activator.CreateInstance() as ISecurityRule)
.OrderBy(r => r.Priority);
You can then run a chain of responsibility by writing
var allowed = rules.First(r => r.Check(someObject) != null);
//Check returns null when a rule isn't relevant to the object being checked
it's pretty sweet for metaprogramming when you can run queries against your codebase
But its equally simple to spin a windows server and even more simpler to setup (thanks to RDP). Amazon even offers a free microsoft micro instance (I even got a $50 windows credit for april month) :)
I really love NancyFx. It's such a well thought out framework. If there is some feature missing, all you have to do is hook at the proper place. It really simplified building our startup (http://designduke.com). Best part is that using a REST framework encourages you to move out most of the logic and functionality to client and it scales pretty well.
Do you have any link that compares performance of workers to EC2 instance types (for a raw idea of how much power an existing app needs) ? Also, how does deployment to IIS server and running multiple custom executables for various other tasks workout on your platform.. I mean can a worker run multiple applications ?
We haven't made any direct comparisons, but AppHarbor web workers are very fast and can handle upwards of 200 reqeusts/second for cached responses of moderate size. For non-ASP.NET workloads, we offer background workers: http://blog.appharbor.com/2012/03/08/background-workers-in-b...
Actually, this is one of the reasons why some of the new languages pick a popular older language's syntax and coding style. Example, most static typed languages follow C syntax (C++,Java, C#) because most of them expect the programmers to migrate from the older language. This makes the migration much smoother. And when the syntax does differ, programmers tend to overestimate the complexity of the newer language (most C++ programmers complain a lot about Objective-C's syntax initially).
I'm curious, does ASI actually hurt the performance of JS parsing ? I mean, will there be any performance difference between a code that properly uses semicolons versus one that relies on ASI..
That is what surprised me a lot. That there would be so much defense of the practice. I work on C/C++ for a living in enterprise environment and there are style rules followed diligently. Every one knows that there can be lot of cool/hipster code written with C/C++ but no one does because of the maintenance concerns. Writing code is much easier than maintaining it.
What are the universally accepted style rules for C/C++? Every organization I have worked in has had to develop their own guidelines around style in C/C++.
What really surprises me is that such a large number of people are quick to attack someone for writing legal code simply because they disagree with the style used. It feels awfully close to attacking someone for using a different bracing style from your preferred bracing style.
> What are the universally accepted style rules for C/C++?
Whenever I've been asked this, I've pointed people at the JSF-AV coding standards or MISRA.
> What really surprises me is that such a large number of people are quick to attack someone for writing legal code simply because they disagree with the style used.
The important part of the lifecycle of a piece of code isn't the writing of it. It's the maintaining and rewriting that matters. If one coding style makes it easier to introduce errors than an alternative, that's a bad thing. It's not an aesthetic concern. Semicolon-less JS is demonstrably less robust.
The feature in question is intended as an error correction for those cases where the programmer accidentally left out newline. A misguided feature maybe, but it's clearly being abused by intentionally leaving out every (or most) newlines.