Comment Re:Lower Level != "Complex" (Score 1) 648
Oh, and I also forgot to mention that functions fail silently if you don't check their error codes, compared to languages which use exceptions. Silent failures can be immensely confusing to newbies.
Oh, and I also forgot to mention that functions fail silently if you don't check their error codes, compared to languages which use exceptions. Silent failures can be immensely confusing to newbies.
Because even if you're doing simple things, you need to:
- manually manage memory (compared to GC'd languages)
- manually store the length of buffers/arrays
- preallocate arrays for strings, etc. before copying data to them
C is low-level, which makes sense if you want to learn about what the computer is actually doing. But computer architecture is not something that belongs in an introductory computer science course - control structures and basic data structures are far more important, and C just gets in the way of those.
I said C/C++ because they both use same preprocessor. While I'm sure you could do some interesting things with C++ templates, I haven't seen any use of them that goes beyond generics while still being easy to comprehend. This could be due to my own inexperience though.
It was a long time ago, so I could be misremembering it or confusing it with another model, assuming they haven't changed it since then.
As for the keyboard, I ended up getting a Thinkpad T440p, so that should tell you what my standards are.
And this attempt to make a modular phone seems more like a technology demonstration then a product role out. Does anyone think they will try and make a business line out of it? I doubt it.
I think the idea behind Project Ara is the same as the idea behind their Nexus line - they're not interested in being manufacturers, they just want to raise the bar for devices running their software. They'll (hopefully) establish some critical mass, a few other manufacturers will start making parts, and eventually Google won't need to do anything for the system to be self-sustaining, except maybe push for better specs on Ara 2.0...
It's not like you can't add a third party repository with the latest stable (or development) version of Firefox.
Besides, even if you're going to download it somewhere else, would it be good if the OS could check that somewhere else for updates instead of each program have its own auto-update daemon run at startup?
3. C++ isn't an interpreted language; of course it won't have much reflection.
While reflection is much easier to implement in interpreted languages, there are compiled languages that support it. e.g. D
Having worked with D a bit, the biggest difference between it and C++ is that D is garbage collected by default. You can disable the GC and use malloc, but this renders the standard library off limits. Apart from that, I would say that D not only has all the features of C++, it has features that C++ doesn't even have yet. e.g. concepts were proposed as an extension to templates for C++11, but still aren't part of the spec. In contrast, D has support for constraining templates similarly using syntax such as:
T square(T x)
if (isIntegral!T)
{
return x * x;
}
D also has excellent support for functional and meta-programming. e.g. the pure and immutable keywords. While C/C++ requires you to use macros for meta-programming, D lets you use existing D functions to generate the resulting code.
The more interesting question is really if freedom exists when you never make use of it. (Do you actually hack the kernel or fix somebody's proprietary binary-only drivers as a GNU/Linux user?)
You don't need to directly make use of it though; the mere fact that that freedom exists can influence design choices. A good example of this would be how many (common) Linux drivers are based around the actual chip in the device, as opposed to the specific make and model (as is the norm in Windows). Not needing to install drivers for 99% of supported hardware is a pretty nice benefit, and it's the direct result of the kernel (and by extension, those drivers) being GPL.
Freedom, like everything else, exists because it has consequences that we can perceive.
Samsung: http://www.samsung.com/us/seri...
The Series 9 is a POS (or at least it was when I was buying a new laptop a little over a year ago.) The case has a lot of flex and the keyboard terrible tactile response. Regardless of what the specs (and price) are, I don't think you can argue it's a serious contender for the high end.
'cat
OS X may (arguably) have some advantages over Linux in terms of usability, but I don't think you can argue that it has a superior feature set. That's the fundamental difference between them - OS X has a few, highly polished features that serve the needs of the average person (who doesn't mind living in an all-Apple ecosystem), while Linux has almost every feature you could think of with a comparatively small amount of polish.[2]
[1] Note that isn't even exhaustive - it only lists those compiled in or with loaded modules.
[2] e.g. There are currently 3+ different ways to use a SSD as a cache for a mechanical drive. None of them have been integrated into the installer for a distro.
Who cares about root! My home directory is WAY more important than the system.
Which means you should have backups that are not writeable by your account, and the easiest way of doing so is having cron create a tarball of
And we already have the solution too - the one guy who was running it under SELinux got an error message instead of a wiped system.
(He also appears to be the one responsible for the bug in the first place...)
To play devil's advocate, the init-related complexity exists either way, so what it really comes down to is where it gets handled.
I think that systemd's approach to daemons (declarative config files about 5 lines long) is much simpler than the sysvinit approach of having a few pages of bash.
Journald is admittedly more complicated that traditional syslogs, but the ability to query a database with a simple command instead of several lines of perl is potentially worth it. (I say potentially because I haven't yet figured out which daemons actually log to journald, and which just use their own log files.)
Making systemd ignore all of fstab is painful because you're trying to disable an entire 'feature'. (The inability to do so contributes to the perception that it's monolithic, but I digress.) What would probably work better is adding 'noauto' to the entry for the file system in question, then add a
"Show business is just like high school, except you get paid." - Martin Mull