1,299 karma · joined August 12, 2012
Even though I'm not very familiar with Haskell, I find this code much more concise and easy to follow compared to the original git-clone implementation in C. Though perhaps that's more down to the author's coding style?
var R = require('ramda');
with (R) {
var propEq = use(pipe).over(get, eq);
}
...Or even: var R = require('ramda');
for (var f in R) {
window[f] = R.f;
}Actually, this is very common. It works in exactly the same way as MegaUpload did - Señora Pirata uploads her ripped movies to Dropbox, and distributes the public link to strangers.
Have I just drunk too much kool-aid? Or is it possible that with the right team, the right architecture, Angular can actually be a really great framework to use? The common theme for every large Angular project I've worked on is that the teams have leaned towards a more functional design where state is rarely used. This has always seemed to encourage smaller, decoupled modules which don't suffer from many of the problems that the author mentions.
But hey, it's probably the kool-aid.
In my experience it is extremely useful to have a bunch of "Unfinished; WIP" commits that I can look through to figure out what I was thinking yesterday when I started writing code. When I'm ready for other people to pull my commits, I'll rebase them into more meaningful commits (or often just one single commit).
1. I can't think of a single case where the Angular documentation has failed me. Yes, it's sketchy in places, but what open source documentation isn't?
2. I'm not sure which toolchain you're referring to, but Angular is just a framework - you can use whichever toolchain you like. You can even use no toolchain if you wish.
3. Debugging has improved significantly since 1.0, especially since Angular started adding HTML comments to denote where markup is generated from. Browser extensions like AngularJS Batarang and ng-inspector help out as well.
4. Again, I don't know exactly what you're referring to here, but I feel like Angular's concepts and semantics fit in just fine with other systems. Scopes, services, controllers, modules... These all mean what you think they mean.
5. I'm genuinely interested how you think using an open-source JS framework will tie you to a corporation? Hell, I'm interested how using Java will tie you to (I assume) Oracle when things like OpenJDK exist?
If I were to set up a company which sold similar products at similar prices, I would expect the FBI to come knocking at my door very quickly.
I visit Lisboa 2-3 times a year and every time I go back, it seems more vibrant, more buzzing with energy.
The author seems to cite two main reasons for wanting to move away from Puppet: their codebase was large and badly structured, and their techops team didn't know Puppet well enough to manage it. Neither of these sound like problems with Puppet itself -- they're certainly not unique to Puppet. I'm not convinced that moving to a newer, less mature technology (which I assume techops don't know well either) will solve these problems.
Even when multiple inheritance is genuinely useful, it still feels dirty to me. PHP actually has a nice feature called traits, which is essentially compiler-assisted copy & paste. It means you can re-use code without duplication and without the confusion that multiple inheritance can bring.
I think for this reason I still prefer using Array.prototype.join for multiline strings:
var str = [
'<!doctype html>',
'<html>',
'<body>',
'<h1>❤ unicorns</h1>',
'</body>',
'</html>',
].join('');Everybody is in such a rush to learn new frameworks, new languages, new toolsets; nobody is learning how to actually _program_. I've worked with people who looked down on me for not knowing WeekOldFramework, but who couldn't architect a simple CRUD application to save their lives.
I feel like so many developers have this "quantity over quality" attitude about knowledge, and it's hurting the industry. With such shallow knowledge, we're doomed to never learn from history and forever write bad software.
Get off my lawn, etc.
Edit: It really depends on the switches, as well. Cherry MX greens, for example, have a much higher actuating force which some people find unpleasant even after long-term use. Browns and reds have a lower actuating force and are much nicer as a sort of "introduction" to mechanical keyboards.
> 5.3 was released in 2009. Language constructs ought to have been standardized by then.
Absolutely not. By this logic, no languages would ever evolve. The PHP core team are making an effort to evolve PHP into a better, modern language. If you want to take advantage of this, then do. If you want to write code that runs on your clients' older servers, then write backwards-compatible code and don't expect to be able to use new language features.
> the designers’ strategy to break code compatibility between PHP versions only for aesthetic reasons (array(a,b,c) vs [a, b, c]) is bound to lose the confidence of its users sooner or later.
This is not a backwards-compatibility issue. You used features which were introduced in 5.4, and expected them to work in 5.3.
This resonates with me so much. I've left a few companies after having conversations which ended with my manager saying exactly this. In most cases they have ended up hiring somebody else at a salary higher than mine.
It really confuses me. I usually don't want to leave these companies because the work is good and finding a new job can be stressful. They usually don't want me to leave because I do good work and finding a replacement is costly. I don't understand why all this bureaucracy and nonsense about job titles has to get in the way of finding a middle ground.