Walter Bright Ports D To the Mac
jonniee writes "D is a programming language created by Walter Bright of C++ fame. D's focus is on combining the power and high performance of C/C++ with the programmer productivity of modern languages like Ruby and Python. And now he's ported it to the Macintosh. Quoting: '[Building a runtime library] exposed a lot of conditional compilation issues that had no case for OS X. I found that Linux has a bunch of API functions that are missing in OS X, like getline and getdelim, so some of the library functionality had to revert to more generic code for OS X. I had to be careful, because although many system macros had the same functionality and spelling, they had different expansions. Getting these wrong would cause some mysterious behavior, indeed.'"
As little as possible. From the article:
I then figured out how to remotely connect to the Mac over the LAN, and (the Mac people will hate me for this) put the Mac in the basement and operate it remotely with a text window.
A Mac is a genuine Unix workstation that is much easier to administer, and has much better software and hardware support than Linux.
I can run basically every Linux/Unix application on my Mac, both command-line and GUI, while not having to worry about wireless networking drivers, printer support, power management / sleep support on my laptop, getting accelerated 3D drivers working, or any of the other minor hassles that are involved with setting up and maintaining a Linux install.
If you walk into the computer science department at MIT, basically all the faculty have a Mac, and fully half the students do. These people are not buying Macs because they saw a cool ad on the bus - they're buying them because a Mac is the best tool available.
The argument that Macs are just expensive, "designer" PCs that look pretty and sell well because Apple has marketed them well doesn't hold water. Yes, they have nice hardware, and a clean, polished, slick UI, and that does make them more pleasant to work with than some blob of Dell plastic running Vista - but they have the functionality to back up their appearance, as well.
Yeah, they're more expensive. If you value your time at all, you should realize that spending an extra $100 on a Mac is well worth it if it improves your productivity. Hell, if you ever spend two hours fighting with some weird issue on your Linux box, it's no longer saved you any money. You know how long I've spent fighting with the OS to get my wireless working, or hibernate working, or whatever, in Mac OS X, in the five years I've been using a Mac? Zero. I'm not exaggerating. It lives up to the hype. It "just works". It gets out of my way and lets me get things done.
This space intentionally left blank.
I don't think D will ever have the high performance of C++, because D objects are all allocated on the heap. The D 'auto' keyword is just a compiler hint (last time I checked) to help in escape analysis. D has structs, but one has to design upfront if a class has value or reference semantics, and that creates a major design headache. Avoiding the headache by making everything have reference semantics negates the advantages of struct.
D is a mix of C and Java, with the C++ template system bolted on top. It is no way C++. D is not what a veteran C++ programmer excepts as the next generation C++.
So basically, Mac IS Linux on the desktop?
I think I've just given Linux fans nightmares for months.
Random Thoughts From A Diseased Mind (Not For Dummies)
From what I've understood his D implementation and Digital Mars C++ share some code. Would he bring Dital Mars C++ to MAC also? Or to Linux for that matter?
Real developers actually use the Mac?
Of course. The MacBook and MacBook Pro are nice laptops for on the move, and it runs ssh, gcc, vi, emacs and X11 perfectly.
"Little does he know, but there is no 'I' in 'Idiot'!"
I'm not going to club you into oblivion for that post, but I'd like to quiz you on basically every linux/unix app running. I'm not disagreeing, I'm curious. Are we talking the level of support that wine gives on linux? Or are we talking eeeeverything?
-- All your booze are belong to us.
I think you need to study some more C, C++, Java or C# code and you'll notice not every end of line terminates a command..
I'm a Mac head since I bought an LC. My company is run with Macs only. However, I have A Lot To Complain About (TM). Sound goes missing after switching accounts (can be switched back on by changing source). Initiating iChat communications fail half the time. E-mail accounts don't stick in Mail. The cursor makes sudden sweeps across the screen. When you want to fax and type a number, it starts to assume some person from the address book, but when it is not that person, you end up with a mess that is Very Hard To Edit (TM) in the fax number field. Oh, and lots more. Well, OK, no viruses, so in that respect I'm still a happy camper.
Bert
Oh yeah the semicolon is a MAJOR obstacle for every programmer...
Because the compiler ignores whitespace it's probably not the best design decision to let a non-visible character be the end-of-line terminator.
Yes. At work, they've given me a kick-ass Dell - serious high-end piece of machinery - and I almost never touch it. Instead, aside from e-mail, all my efforts are through my personal MacBook Pro. Even if I'm VNC'ing over to my Solaris session, I still use the Mac.
Truth, Justice. Or the American Way.
There are very good reasons why we have stuck with the ; as statement terminator instead of newline. Not the least of which being that systems simply don't agree on what bytes constitute a newline. Windows thinks it's \r\n, UNIX-ish systems that it's \n and (pre OS-X? Haven't ever owned one myself) Macs think that it should be \r. And then you have things like "logical newline" e.g. std::endl That is not to say that putting some more work into compiler error messages wouldn't be a good idea. I assume most C++ programmers have tried receiving a _huge_ amount of garbage template crap as an error message instead of "missing semicolon" when trying to output text with std::cout.
________
Entranced by anime since late summer 2001 and loving it ^_^
hahaha. Now I have two Macs in the house, wife and kids love them. but OSX doesn't run on 1/100 the hardware that Linux will, you mean it has better hardware and software support for Apple's somewhat overpriced hardware (unless you buy four+ years old used on eBay like me). And what do you mean spend $100 more, more like a thousand or two more for new. The pile of available open source apps is bigger for Linux (or certain BSD too) than OSX, though the mac porting projects are doing well as they catch up. As far as productivity, it's the same on either platform for anything I do. Your argument about spending time resolving hardware issues, I had to look up how to make my laptop's volume thumbwheel work in Linux, that took 2 minutes. Everything else on all my boxes just work. Oh, and I have an Asterisk VOIP box with zaptel cards under Debian, how well is that going to work in OSX?
Sound: multiple sound cards - eh ? ... well ... add them all to the address book :)
iChat: your router or ISP sucks. It works ok for everybody else.
e-mail: Clean your caches. This also works ok for everybody else.
Mouse cursor: either don't let direct daylight shine on the mighty mouse or throw that junk away and get a real mouse with a opaque body
Fax:
1% APY, No fees, Online Bank https://captl1.co/2uIErYq Don't let your $$$ sit in a no-interest acct.
Why would Mac people hate somebody for that? I ssh into my macs all the time. I pretty much always have terminal windows open. A lot of the molecular biology software I use (the open EMBOSS set of programs ROCK) are command line only, take files as input & write files as output. It's a BSD box with pretty paint. Sure, it's nice to have the pretty screens & be able to run things like iphoto & etc, but at the end of the day the most useful stuff still runs from the > prompt.
1984 was supposed to be a warning, not an instruction manual.
Now he's done it. Kicked off the alpabetical arms race. He himself averted it once by the Operator Gambit of + and ++. The crisis was defused.
It was stumped again this decade by what came to be called the Jungle of Earthly Delights Diversions (Python, Ruby, et al). But now he's broken the dam to the last redoubt, the alphabet. There are only so many letters! It is a limited supply! We've feared this since the mid-nineties. Who will save us now?
Behold, this dreamer cometh. Come now, and let us slay him... and we shall see what will become of his dreams.
Nope. We have B, we have C and the one language to rule them all has source files ending in .PL
1% APY, No fees, Online Bank https://captl1.co/2uIErYq Don't let your $$$ sit in a no-interest acct.
Visual Basic sucks. BASIC rules. Long live GOTO!
1984 was supposed to be a warning, not an instruction manual.
In general, I've learned not to argue with Mac fans (if you value reasoned discourse, that might give you pause -- I've been clubbed into apathetic, eye-rolling silence), but I must point out that the (obviously trolling) grandparent to your post asked if actual developers used the Mac. Your reply that academics and students sure use hell out of it is pretty damn funny.
Apart from if you want to run the most popular scripting language.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Simply treat both cr and lf as endlines; a compiler isn't formatting output and ignores a blank line so treating \r\n as two endlines doesn't matter. Use a visible character like the _ in vb to indicate that the next nonblank line is a continuation. I have to agree with parent that ignoring whitespace is one of the dumbest ideas ever. How often do you really needa 140 character line, versus the frequency of lazy programmers writing unreadable code because the language doesn't require even minimal formatting?
Brackets contain world's first nanosig, highly magnified:[.]
I can run basically every Linux/Unix application on my Mac, both command-line and GUI, while not having to worry about wireless networking drivers, printer support, power management / sleep support on my laptop, getting accelerated 3D drivers working, or any of the other minor hassles that are involved with setting up and maintaining a Linux install.
I partly agree, but in defense of Linux, you seem to be comparing a shrink-wrapped Mac (hand built by dusky maidens from only the finest OS X-compatible components) with slapping a standard Ubuntu CD on your old Dell. If you bought a purpose-built Linux workstation you'd expect it to, likewise, have been made out of Linux-supported components and be properly configured out of the box.
You'd probably have similar driver nightmares with OS X if, rather than buy a nice shrink-wrapped system from Apple, you tried to turn an existing PC into a Hackintosh.
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
OK, whats with this unix love? Yes it is a unix workstation, but so is HPUX. HPUX is ...different. You will understand if you have ever used it. Being Unix compliant does not mean a OS is good, reliable, or stable OS. Don't get me wrong, I have used OSX and like it fine. I think it can stand on its own as a OS, as apposed to relying on 'but it's Unix!'. I would rather have the free (as in beer) linux with the freedom to do what I want on my hardware/software. I much prefer the gentoo EULA to the apple EULA.
This hardware statement is a out and out lie. OSX does NOT work on a wider range of hardware, nor does it have support for more hardware. OSX will work on the laptops Apple sells. Which does not surprise me. If I am paying a premium for a laptop I do expect the OS it _comes_ with to work.
Lets take for example me Dell m1730. I installed Redhat and gentoo on it, _everything_ works. No, everything didn't just work right away, but it wasn't difficult. Good luck trying to install OSX on it. Besides violating the EULA(http://www.apple.com/legal/sla/), it doesn't 'just work'. I googled it to make sure.
I can (and have) install linux on a 486, the crappy PIII in my closet, the dual quad xeon at work. And it works. Even my odd video card and its friend the ancient soundblaster. Good luck with OSX, I am sure you can get most things working, eventually.
I have a 4 year old dell laptop that came with windows XP. Wireless works great, it suspends and hibernates great. Everything worked great out of the box. Never had a ounce of problems with it, use it every day. This does not make it a good OS. So I installed linux on it. Which works great also.
One addition point, you can pay a lot more then 100$ for a comparable laptop.
I know you love your mac, but please don't share the kool-aid.
I agree. I can't get my head around the insanity of python's system of indentation delimiting block structure...
What's wrong with lines terminating with semi-colons anyway? It encourages much tidier and more readable code, i reckon.
getline() and getdelim() are GNU extensions. Apple doesn't particularly like GNU. The FSF doesn't particularly like Apple (for good reasons). So, duh.
I think the fact that this post has been up for almost an hour and has only 33 follow-ons shows what the software community thinks of D.
One has to acknowledge that Back in The Day, Walter Bright did all of us a great service in producing the first PC-based C++ compiler (Zortech) which effectively forced Borland and Microsoft to take the language seriously.
Unfortunately, for all of us, he seems to be better at invention than collaboration but that doesn't devalue the contribution he made (structurally) to get us to where we are.
cheers...ank
Still hoping for Gentle Treatment...
The griping and misinformation here is so atrocious that I'm simply embarrassed to be reading Slashdot today.
Digital Mars D is a wonderfully designed language and I'm in the process of giving up a lifetime of C++ for it.
I'm not here to defend D or enumerate it's growing pains or evangelize it, but if you don't take it upon yourselves to be well informed, please don't repeat your biased gibberish to the rest of us.
ROTFLMAO! I just learned something new! I was unaware that OS X runs on ALPHA, ARM, and the other 19 processor platforms that Linux supports.
What you say is, of course, patently absurd. You are comparing a system already set up, with a bare bones system. None of MY customers worry about those things either, since they compare their already set up Linux system to an already set up Mac.
Perhaps the most absurd statement you make, and that is saying a lot .
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
Okay. I'll amend my previous statement.
So basically, Mac IS FreeBSD on the desktop?
I think I've just given FreeBSD fans nightmares for months.
Random Thoughts From A Diseased Mind (Not For Dummies)
Linux is also UNIX on the desktop. It's just an oddball version of UNIX, with a whole bunch of extra APIs that people using Linux get used to and come to depend on, so they think writing portable code means "it runs on Red Hat and Suse" (or Debian and Ubuntu, if you're on the Left Hand path), and then when they go to port to a more standard version of UNIX, they write stuff like this:
If you're writing code that depends on the expansion of system macros, or if you're depending on obscure Linux-only functions, you're writing unportable code. What really bothers me is the idea that someone writing a Linux-only program would already have run into situations where they had to conditionally compile code. Has Linux really fragmented that much?
Yes, eeeeverything that can be run on Linux/Unix can be run on a Mac. A lot of things are already there, or downloadable in binary form. For most everything else, there's MacPorts or Fink. If it's not covered there, there's always downloading source code and compiling. This sometimes is a lot of extra work.
It all depends on how much extra work you want to put into it, and how familiar you are with *nix environments.
:q!
...or there's always Greek, Hebrew, Klingon* and, hey, Chinese (that should keep us going for a while)!
Why do you think they invented Unicode?
(*Fatal Error at line 16349: statement has no honour)
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
I think I've just given FreeBSD fans nightmares for months.
You don't understand FreeBSD fans, then. Most of the FreeBSD users I know have Mac desktops. Jordan Hubbard works at Apple now.
Mac on the desktop, FreeBSD in the back office, it's a sweet environment and everything "just works".
Dr Suess will save us! http://www.amazon.com/Beyond-Zebra-Classic-Seuss/dp/0394800842/ref=sr_1_1?ie=UTF8&s=books&qid=1235319102&sr=1-1?
Contribute to civilization: ari.aynrand.org/donate
I was unaware that OS X runs on ALPHA, ARM, and the other 19 processor platforms that Linux supports.
You spelled that wrong. It's "BSD runs on Alpha, ARM, ...". Mac OS X just happens to be the best BSD version for the desktop... and it's a much better desktop than any Linux desktop.
People who have been Mac people for a long time generally don't have that workflow, as the importing of the BSD backend is a fairly recent addition to the Mac world, whereas many of the GUI conventions have been around much longer.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
A Mac is a genuine Unix workstation that is much easier to administer, and has much better software and hardware support than Linux.
It has *better* software support from major ISVs, I will grant you that, but it does not have better software support generally and Linux supports far more hardware than MacOS. Not all Linux software runs on the macOS either.
My wife and son have macs, and I tell you, I'll take Linux every time.
I can run basically every Linux/Unix application on my Mac, both command-line and GUI, while not having to worry about wireless networking drivers, printer support, power management / sleep support on my laptop, getting accelerated 3D drivers working, or any of the other minor hassles that are involved with setting up and maintaining a Linux install.
I have a couple printers that don't work on my wife's, son's or mom's mac.
I have an AMD noname and a Dell desktop as well as an HP pavilion laptop, and I don't have any real problems. I have to use the unsupported nVidia driver, but that isn't too hard to install. Things like Skype just work.
If you walk into the computer science department at MIT, basically all the faculty have a Mac, and fully half the students do. These people are not buying Macs because they saw a cool ad on the bus - they're buying them because a Mac is the best tool available.
That is a fairly subjective statement of a dubious conclusion. Most of the guys that I have worked with use macs at work because the "organization" in which they work requires MSOffice which is not supported on Linux. They would rather use Linux or FreeBSD.
Yeah, they're more expensive. If you value your time at all, you should realize that spending an extra $100 on a Mac is well worth it if it improves your productivity. Hell, if you ever spend two hours fighting with some weird issue on your Linux box, it's no longer saved you any money.
I am less productive on Mac, and I've spent my time fixing macs as well. I have a standing free bottle of Wine from an upscale wine shop because I was able to get their printer working on their mac. They had been trying for months.
When it comes to productivity, lets see a Mac do this:
ssh -X hostaddr application
And have the GUI application pop up on a remote screen without the WHOLE screen like VNC.
in Mac OS X, in the five years I've been using a Mac? Zero. I'm not exaggerating. It lives up to the hype. It "just works". It gets out of my way and lets me get things done.
Its funny, EVERY SYSTEM has issues. People who claim they do not are lying. Like I said, my wife, mom, and son have macs. I've developed software on macs periodically for about 15 years. OS/X does have its issues. There are hardware issues on macs.
For average users I recommend mac because it has far fewer problems than Windows. For techies, there is no substitute for Linux or FreeBSD. (I prefer Linux, but I have friends who prefer FreeBSD.)
I wonder: do use spaces for indentation?
I use tabs, and the indentation-equals-block makes a lot of sense to me.
The damn things ship with developer tools (Python, Ruby, etc.) and SDKs out of the box. Not sure if you're from the Bay Area or Silicon Valley but those things are really popular among software developers here. I switched to a Mac from Windows because I was sick of my tools getting in the way of my work. Not sure if things have improved much since Windows Vista (heard otherwise) or Windows 7 (heard good things) but I'm quite happy with Mac OSX that it would take a lot to make me give it up.
EvilCON - Made Famous by
OK, whats with this unix love? Yes it is a unix workstation, but so is HPUX. HPUX is ...different. You will understand if you have ever used it.
Don't talk to me about HPUX, I'm still bitter about Alpha.
Being Unix compliant does not mean a OS is good, reliable, or stable OS.
Not being UNIX would mean that it doesn't matter how good, reliable, or stable it is... it wouldn't matter, I wouldn't be using it. I've done my time in the trenches dealing with VMS, TOPS, RSX, RTE-IV, MS-DOS, CP/M, Windows, AmigaDOS, Exec/1100, many of which were by all kinds of measures good, reliable, or stable. But dealing with different operating systems sucks rotting frog innards through used oil filters, and I'm too old for that kind of manure.
Being UNIX means that, if it also happens to be good, reliable, or stable (which it does), it's worth using. If OS X was based on Copland or even BeOS I'd still be running free UNIX on my desktop.
You are not going to seriously suggest that Mac OSX supports more hardware than Linux are you?
I have a System76 Laptop running Ubuntu Linux 8.10. I have ZERO problems with hardware support of ANY KIND!
Your entire post is a complete puddle of steaming ass-goo for anyone who actually is in the know about GNU/Linux/Ubuntu. It truly is laughable!
Over-the-top Response Guy! Giving "Over-the-Top Responses" since 1970.
Prolog?
Seriously, name me a piece of commercial or open-source software with significant market share written in D. Library support is about 10000% more important than actual language design.
you should realize that spending an extra $100
I think you forgot a zero. Prices may be different in my-vs-your neck of the worlds, though.
and has much better software and hardware support than Linux.
I think Linux has much wider hardware support (it works on non-apple hardware too), whereas OS X has full support for a much smaller set of hardware. What's better depends on personal preferences.
I can run basically every Linux/Unix application on my Mac
Really? Didn't the summary just say that some of the system calls are missing on OS X and some macros are different? Or did you mean running the binaries (in which case, there's still the system calls)? Or do you cheat by running Linux on your Mac? ;-)
You love your Mac, and that's great for you (really, I mean that). But I think you might be overselling it just a little. Bullshit detector went from green to yellowish green ;-)
OS X is easier to operate, and is set up to work well with Apple hardware. Those are nice features, and the reason I have an OS X laptop. But it surely isn't easy to administer. It's indeed quite terrible, since there's no package management to speak of.
Ever tried to walk through a classroom of mac-using high-school students how to get pygame installed and working on their OS? Including the proper version of python if their OS X has an old version, PyObjC, and so on? On Debian or Ubuntu, this requires double-clicking "python-pygame" in Synaptic, and all dependencies/upgrades/paths/etc. are handled automatically. In OS X it's a giant pile of manual bullshit.
And god help you if you have to resort to some mish-mash of .dmg installers, fink, and macports.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
I use tabs for indentation. But i don't use python.
Maybe i'm wrong, but using an invisible character (which could be a/some tab(s) or a/some space(s)) seems like it could make the code very hard to read and prone to errors.
Not all Linux software runs on the macOS either.
Yeh, there's a lot of Linux programmers who wouldn't know how to write portable code if the portable code fairy shat clue down their throats. Last decade it was SunOS programmers, the decade before that it was people who thought all the world was a VAX. The world is full of people like that.
For techies, there is no substitute for Linux or FreeBSD. (I prefer Linux, but I have friends who prefer FreeBSD.)
Ask your friends about porting Linux code from people who think portable means "it compiles on Red Hat and Suse... ship it!"
Oh, while we're on the subject, you do know that Jordan Hubbard works at Apple now, don't you?
Sadly macports and fink are pretty poor :( They don't have enough people and most of the packages are broken or out of date. I have simple patches for projects which I run which have been sitting in the macports tracker for more than six months and still have not been approved.
Debian/Ubuntu/etc. still have by far the best package repository and that's enough to make my mac almost useless and my linux laptop the place where I do most of my work. Plus OS X is rather slow, argh.
Fabulous, he ported a language to the MAC. Ok groovey...
The bit about having to make adjustments to the library code is news why?
Not all OS's support everything in the world, that is just the way it is. If you implement a certain function or macro one way on one platform does not in any way mean that you will be able to implement exactly the same on another platform.
Hey KID! Yeah you, get the fuck off my lawn!
To me, it enforces that the code *is* easy to read, by ensuring the visual indentation matches the semantic intention. ;-p)
There's never a mismatch between what you intuitively see and what it actually executes. Which is probably why they let you mix tabs and spaces as long as it's consistent visually. Although personally I think it should be a syntax error to mix them (or better yet, an error to use spaces for indentation in general
Maybe i'm wrong
You're wrong. In the last 6 years of our company using Python for business logic development, we've never had a single bug that was traced back to indentation or an end-of-line problem.
Dewey, what part of this looks like authorities should be involved?
Didn't the summary just say that some of the system calls are missing on OS X and some macros are different?
No, the summary said that the code was written with unnecessary dependencies on obscure libraries that didn't happen to be shipped on OS X, and that it was so buggy it depended on the expansion of macros being identical on different operating systems.
I can pretty much guarantee that any program with those kinds of dependencies would have just as much of a problem porting to any other UNIX system. It wasn't a "Linux/Unix" program, it was a "Linux-only" program.
Apart from if you want to run the most popular scripting language.
The lesson, which any Mac developer with a clue has known for years, is that if you want to work with your own customized perl installation, install your own Perl, don't extent the preinstalled version which Apple might change in a future update. Since installing perl on a Mac involves, basically a) downloading the software; b) typing "sh Configure -de"; c) typing "make"; d) typing "make install." Not too tough, really.
lets see a Mac do this:
ssh -X hostaddr application
And have the GUI application pop up on a remote screen without the WHOLE screen like VNC.
You can't seriously be suggesting that X11 is unavailable for OSX. If you have an X11 application that you would like to run, you can certainly do what you're suggesting. No serious UNIX weenie should have any trouble building it. Your only possible room for complaint here is 1) that that not every application is an X11 application (something for which most users are thankful) or 2) that you want your mommy to have compiled the app for you already.
The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...
hmm . excuse me, but : better hardware support?
Since when? Can I just take, let's say, some non-apple graphic adapter I've got lying around, plug it in, and it will work? Or go out and buy some random wireless adapter?
Better sofware support is arguable, but better hardware support, I think not
"DRM is like the Ford Pinto: it's a smooth ride, right up the point at which it explodes and ruins your day."-C.Doctorow
Yeah, maybe so. It seems a bit ideologically driven to me - a language that forces a particular coding style on you.
I invariably indent blocks - but i do it because it's good practice, and i don't think i'd like it if the languages i wrote in forced it on me.
Now if a language forced you to intersperse code blocks with verbose comments, i might think it was a good idea! ;-)
Now that's the truth!
I was at Berkeley when 4.2BSD was being pulled together, and did some work for the 4.1C release. I was one of the guys who got 386BSD to compile clean in the first place. I had a NeXTstation on my desk for several years. I was the FreeBSD handbook guy for a while. I worked with Tru64 back when it was the only fully 64-bit UNIX. I know what "BSD" and "Mach" are, better than you and better than most of the people who contributed to that Wikipedia page.
you should be aware that this is Slashdot
Yeh, I'm keeping that in mind. Thats why I'm not going to even TRY and explain just how badly you're misreading that Wikipedia page.
No, nor should we. Your mistake is in assuming that pressing the enter key indicates an intent to end the language statement. C and C++ both ignore whitespace and line feeds. There are lines of code that are very long, and it becomes unreadable if it must all live on the same line. So yes we must, and will, promote the excellent well thought out design forward.
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
I really like D, and would give up C++ for it, but the one thing I feel is really missing is bindings for Qt. :(
I suggest, while you're out there, you look up Lites, Tru64, DragonFlyBSD, and some of the other BSD variants. You can check out the kernel code for many of the BSD variants out there, including Darwin, and let us know just how far OS X is from 4.4-Lite compared to the rest.
Oh, right, this is slashdot. Asking people to do actual research is trolling.
From a pragmatist point of view it is the standard.
I think it means that the beautiful design of the machine is hidden away in the basement :)
Global symbol "$deity" requires explicit package name at line 2. - If only $scripture started "use strict;"
Go to Google code search, type lang:python, hit enter, read some code. Python is VERY readable. So far I think it is the most readable programming language I've ever used.
Bunch of kids with a trademark in their pocket.
UNIX is a family of operating systems with a native API and system call interface based on the UNIX programmer's manual, published by Bell Labs (usually the 7th edition).
That's a *useful* definition for UNIX.
but Mac hardware is crap
Have you ever used mac Hardware? Their laptops have been amazing for ever. Apple has long been a major innovator on the laptop front. And many of the things you expect in a laptop were made a standard feature first on the Mac. Things like target mode, gig ethernet, auto-crossover, built-in wifi, built-in bluetooth, Ac adapter standardization, integrated mic, integrated camera, external battery indicator, backlit keys (or any way to view the keys in the dark), DVD burners, and there are probably more that I just can't think of. Macs have great hardware.
Yes, they may not have every possible feature, but they have lots of good ones and really versatile. Computer snobs who turn up their noses at macs remind me of car snobs, except that a lot of the cars those people like aren't that useful, and break down a lot. I don't get that mentality and I probably never will.
This was a voluntary program in which students brought their own laptops, some of which were OS X. In general, the Linux and Windows laptops presented no problems; the OS X laptops presented difficulties due to lack of a standard user-friendly installation process.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
Actually, the default condition for most languages is that the end of line is just another white space and that's the way I like it. I like my source code text to fit into 80 columns. Long thin columns of text are easier for the human eye to scan than short wide ones. This is the same reason why newspapers do not print single lines across the whole page, but divide it into narrow columns.
My personal opinion is that any language where white space (i.e. characters you can't see) does anything more significant than separate the tokens is the spawn of Satan.
Yes, including Python.
All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
Ugh, yeh, this article referenced is just Walter's brain-dump writeup of what it took to get the mac port working for anyone who is interested. I don't think it was really meant to be a profound and insightful piece on software development. I think there he's referring to a bunch of code he wrote back in the 80's when he was primarily a Fortran & ASM programmer.
Also don't get your hopes up. The mac port is just barely working -- this is like the pre-pre-alpha release of it. Walter releases new snapshots about every month, and what's available now is just the first snapshot to ever have Mac support. So expect things to be broken.
You can't seriously be suggesting that X11 is unavailable
Not at all, but it is not *the* display system it a legacy add-on for applications designed for other systems. It is certain your iTunes application will not run in this way. On Linux, virtually all the applications will run this way. X11 on mac is a kludge.
So, I can run:
ssh -X root@host gnome-control-center
How would you do that on Mac? VNC? What a kludge.
Abandoning X11 was a mistake.
Windows worked perfectly fine, because it goes the other route, and lets users just run installers for anything they want (oh, and it has installers, not .dmg bullshit); only OS X presented problems. OS X can't decide if it wants users to install and upgrade things, or it wants that to be managed centrally, so you have a mish-mash of both. OS X-installed Python, of one version, user-installed Python, at a different path, of a different version. Neither Windows nor Linux require you to mess with crap like that.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
I have to agree with this. I had a huge amount of hassle installing and compiling gnucash. I had to download libraries not found within macports, locate and compile packages from alternative sources due to broken copies in macports and so on.
That was the case where I was lucky enough to get it to work in the end. I've lost days on others before writing it off as a waste of time. It's bad enough that it would be better if macports didn't exist.
...but it is not *the* display system
Yes, I see you've chosen #1 as your remaining complaint. Like I said, most users are thankful for this, and with good reason.
Regardless, all you wanted was to see a Mac do what you suggested, which it can. Now you're demanding that this be the case for all applications...you're trying to score by moving the goalposts.
The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...
Yes, I see you've chosen #1 as your remaining complaint. Like I said, most users are thankful for this, and with good reason
And what would that "good reason" be?
The limited capability?
Regardless, all you wanted was to see a Mac do what you suggested, which it can. Now you're demanding that this be the case for all applications...you're trying to score by moving the goalposts.
Not at all. It is a very important feature.
Right... because apart from Linux, all Unices are exactly the same
That's why writing portable code requires experience.
Linux is a fragmented mess of incompatibility
Good thing I still have this in my paste buffer:
If I thought Linux was "a fragmented mess of incompatibility" I wouldn't have been surprised that it required conditional compilation. As someone else noted, the conditional compilation was because it had been ported to Windows as well, not because it had to include distro-specific code.
No, fewer lines means tighter code. If the logic is good, fine. Else, it means worse bugs to figure out and debug/expand. end
Behold, this dreamer cometh. Come now, and let us slay him... and we shall see what will become of his dreams.
He actually said that academics in a computer science department use it. Don't you think that they count as developers? His anecdote isn't that uncommon, on the academic research projects that I've worked on Macs are used much more heavily than other systems. My current project may be a bit extreme but more than 90% of the participants use a mac. They are all developers - across a wide range from people who are optimising low-level assembly routines, people developing in C, through to some higher level domain specific languages.
My own work patterns haven't changed that much since I moved from a linux box. iTerm has a full-screen mode, and I've always written code in vi. There's a decent version of gcc, and the other languages that I need like python, perl, prolog and others are all available and quite stable.
I find it quite amusing that most people in this discussion are either mac-heads bashing linux users, or linux-users bashing mac heads. It is a refreshing change to find that windows doesn't even make the minimum grade for people to bother attacking it. I just like the combination of stable hardware support (especially given that I use a laptop and power-saving and hibernation are vital) with a unix interface. Maybe I missed the compulsory religious indoctrination session, so I probably don't count as a "proper" mac fan...
Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
http://uncyclopedia.wikia.com/wiki/Semicolon_Cancer
GENERATION 25: The first time you see this, copy it into your sig on any forum and add 1 to the generation.
I'm a Mac fan - I've had several. But this system is my second in a row with a wonky Firewire bus. If I try to use built-in Firewire with certain devices, I get kernel panics. The solution both times has been a $20 third-party card, but it's still annoying. If it happened on my laptop, I'd be SOL.
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
I think it means that the beautiful design of the machine is hidden away in the basement :)
The "beautiful design" of the Mac Mini was hidden away in the design studio in Cupertino in the interest of producing a low-cost unit. MacBooks and iMacs are beautiful. Mac Mini's...not so much.
"We can categorically state we have not released man-eating badgers into the area." - UK military spokesman, July 2007
Computer programs are lists of instructions to be executed in sequence. Since roughly the invention of writing lists have been organized on a one item per line basis. I can see the argument for allowing ; as well as EOL in order to fold short loops into a single line, but not defaulting EOL to end-of-statement makes no sense and just makes obfuscation contests possible. And comparing this to FORTRAN's requirement that you start everything in column X is a total straw man.
Brackets contain world's first nanosig, highly magnified:[.]
And what would that "good reason" be?
Because of the experience and features that their applications provide. What they do not know, and cannot be expected to know, is that these things stem from deliberate tradeoffs made by the developers of the underlying frameworks.
As any programmer worth his salt knows, any design decision comes with a set of tradeoffs. This is an inescapable fact, and only goes unrecognized by the ignorant (whether their ignorance be innocent or willful.) The fine art of balancing a set of tradeoffs is very difficult, and an inherent aspect of it is that you can't please everybody 100% of the time.
In this case, you are one of the unfortunate few that Apple deliberately chose to devalue in their design priorities, since one of the items high on your wish-list is ubiquitous remote displayability via the X11 protocol.
But, bringing our minds back to the subject of tradeoffs, what did they win by giving you the finger? (*) This is an easy exercise for those skilled in software architecture. The first thing that one needs to ask is what sort of restrictions does conformance to X11 bring with it? X11 is a set of abstractions that end up leaking into many different layers of your software stack. While I love X11, a lot of those abstractions were invented a very long time ago before anyone thought they might like different abstractions, like a hardware-accellerated Quartz display server - or CoreImage, CoreVideo, CoreAnimation.
This choice has given them the freedom they need to make architectural advancements faster, and now they're in a leadership position. If you are a programmer and you still think they could have delivered their current product in the same timeframe after having volunteered to be hamstrung by obedience to X11, then you might want to consider a career change.
Nothing comes without a cost. There is a long history of UNIX vendors who tried for years to bring a good GUI environment to X11 and the best they could come up with was CDE. (WTF.)
(*) one footnote here: it wasn't Apple that gave you the finger. This decision was made in the late 80s at NeXT when they opted against X11 so that they could get the WYSIWYG properties afforded by the Display Postscript system. After Apple acquired them, they kept the imaging model but replaced the Postscript interpreter with Display PDF. (PDF is, more or less, the PostScript imaging model without the full force of the Postscript programming language.)
The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...
Its funny, the only thing I saw in your post that even looked like a reason was this:
If you are a programmer and you still think they could have delivered their current product in the same timeframe after having volunteered to be hamstrung by obedience to X11, then you might want to consider a career change.
As a more or less lifelong software engineer. I've been employed in the industry for over 25 years, I don't agree.
Take a look at Gnome or KDE and ask what Mac couldn't do.
Programming in D is nice, but the situation is a bit annoying.
1. Tango vs Phobos. Phobos is the official standard library, but it seems most use Tango. Phobos is also pretty low level compared to Tango.
2. The reference compiler dmd is 32bit only, gdc is outdated and abandoned, and ldc is still alpha status and has missing features. Ldc is quite promising though.
3. D2 is maybe the biggest issue. It has very useful features, such as partial C++ compatibility, but D2 is a moving target and practically no library supports it. It's also unknown when or if ever D2 will become stable. I haven't seen much discussion about it in the newsgroup either.
You must have missed this, or the importance thereof:
Because of the experience and features that their applications provide. What they do not know, and cannot be expected to know, is that these things stem from deliberate tradeoffs
As much as I like how far Gnome and KDE have come along, they are trailing, and serve only as evidence that NeXT made the right tradeoff 20 years ago.
The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...
Interesting. It wouldn't have occurred to me that they would expose the contents of the C include files as part of the D runtime, and translate the actual include files into D. Wouldn't it be better to implement the runtime exposed to the D application in a mixture of C and D, with C wrappers around the actual library calls? It would certainly make a port significantly easier!
Look at the chart in the article, and you'll see it has no multiple inheritance. Might be pretty important to some. :-)
Currently hooked on AMP
Hate to spoil a perfectly good joke, but Bright did not invent or name C++. Credit for that belongs to Bjarne Stroustrup.
Bright did create some widely used C++ compilers. But to me he will always be the author of that notorious time sink, Empire. If you count derived games like Civilization (which is just Empire with a complicated resource model) Bright has single-handedly destroyed more productivity than Pac Man and Warcraft combined!
And of course a D implementation is available!
Well MacOS is how Linux should be on the desktop!
I also switched to OSX from Linux a while ago and I know many people did. Linux guys should really get slowly nightmares, unless they finally can put on a system which does a normal hibernate by closing the and does well all codecs and wifi, OSX erodes the Linux market share among developers. Hell I even know a load of people who switched from Windows due to the Unix nature of the System. From all people I know people developing on Windows either are a minority or are forced by their companies, most at least have privately fully switched, only keeping the Windows machine around for gaming!
Both Microsoft and Linux have a serious problem there! Linux even more than Microsoft!
Nope. We have B, we have C and the one language to rule them all has source files ending in .PL
Amen.
>with the programmer productivity of modern languages like Ruby and Python.
Now if there had been Perl in that sentence I might be interested.
thegodmovie.com - watch it
Things are much easier (and more current) on Gentoo and even the binary packaged Linux distributions.
So I use my Linux box for my "day job" development, and the Mac for "everything else" - but I can certainly develop on the Mac at a pinch.
you had me at #!
Abandoning X11 was a mistake.
"Abandoning" implies that they used to use it and stopped. NeXTStEP never used X11 as its underlying window system (its window system was Display Postscript-based), and Mac OS X never did, either.
Whether it was a mistake or not depends on your goals. It was a mistake if being able to run individual GUI applications "over the wire" is important. It wasn't a mistake if it allowed them to get a given level of graphics performance and capabilities faster.
Not at all. It is a very important feature.
To some users, yes. To other users, no. If it's important to you, then Mac OS X might not be the OS for you, especially if what Mac OS X does offer, such as the ability to run Mac applications, isn't as important to you.
Bad example. I had pretty much the same experience trying to install and run gnucash on Debian. For a very long time, it was impossible to do without downloading and reinstalling custom compiled versions of some of Debian's standard library (on which hundreds of other Debian packages depended on).
"Convictions are more dangerous enemies of truth than lies."
No no, if developers do something stupid under Linux and an update from the package manager breaks it, it's the developers' fault. But if developers do something stupid under OS X and it breaks, that's Apple's fault.
"Convictions are more dangerous enemies of truth than lies."
does anyone else remember this already being on mac? I specifically remember downloading a D compiler plugin for XCode. It had a package and everything. I just never did anything with it. Also, it is what many Doshin shooters are written in. Epecially the ones written with BulletML. Many of these are crossplatform http://www.asahi-net.or.jp/~cs8k-cyu/
ssh wasn't it. Walter was referring to hiding a beautiful Mac in the basement. Macs are meant to be seen as well as used.
Cool. That was modded "-1 Disagree" too! The mod morons are out in force today!
Well said. If I had points left, I'd mod you up.
"No, the summary said that the code was written with unnecessary dependencies on obscure libraries"
I hate it too when people use libraries unnecessarily. However, in many cases using a library prevents re-inventing the wheel.
"that didn't happen to be shipped on OS X"
If OS X doesn't have a library, then that's not a fault of Linux, now, is it? Nor is it unfixable; port the library, you probably got it with the full source.
"it depended on the expansion of macros being identical on different operating systems."
Expansions of macros differ between operating systems? Surely you must have meant compilers.
Programs tend to end up depending on compilers and libraries. That's not something that just happens with linux programs, it happens just as much for macs and windows programs...
You sound like a mac user/developer who wanted (had to) port/use a cool linux program on the mac, and discovered that osx is not linux, and now tries to blame linux, forgetting that you would have encountered the same issues porting the other way around, actually worse because apple doesn't give us the source to their obscure libraries...
--- Hindsight is 20/20, but walking backwards is not the answer.
you should realize that spending an extra $100 on a Mac is well worth it
Ah my good friend, alas but if it was only an extra $100 then I might consider it. But a good mac computer is way more than $100 more than an equivalent PC with the same hardware. That is my first gripe with Macs, that their hardware is the same as that of a normal PC but they charge you like it is caviar or something.
My second gripe with MACS is that for a lot of the software you have to keep going back to Steve Jobs and that is kind of expensive. Windows has way more freeware/shareware than a MAC. Although now the situation is improved due to the BSD kernel. Nevertheless there are a fair share of apps that don't work on a Mac. An example of this is in the article, the D programming language. The article mentions that porting D wasn't trivial, the guy had to do more than just run make on the BSD box. Plus as has been mentioned Linux is often incompatible with other UNIXlike operating systems as well. So just because your favorite app works in linux is no guarantee of mac compatibility.
Anyway all said I'd love to buy a MAC to experiment around. But everytime I look at a MAC and I think oh that's not that much more expensive than a PC, I realize that the MAC and the PC often are on a different level of Hardware with the PC having more RAM/Better Video Card/Faster Processor. I see that and figure I'll just go with the cheaper PC.
It is certain your iTunes application will not run in this way.
Have you tried tunneling Amarok in the way you suggest ? Unfortunatly for you, sound isn't part of the X11 specification, so unless you're using something like a sound daemon (a la esound) and have forwarded that also, the result might not be what you're expecting. I don't see why not being able to remotely display iTunes' GUI would be a problem.
"Not to mention all the idiots who use words like boxen."
Anonymous Coward on Monday August 04, @06:49PM
Every *system* has issues, but not everyone who uses every system encounters those issues.
I've got a MSWind95 system that's been running without a hitch for 4-5 years now. I'm not claiming the system doesn't have issues, but it's not being asked to do anything that would activate those issues.
So don't presume that someone is lying if they tell you they don't have issues with some particular system. Just presume that they are limited in what they ask that system to do.
I think we've pushed this "anyone can grow up to be president" thing too far.
ssh -X hostaddr application
I've done that, and it works. Why wouldn't it? OS X has X11, just like other Unixes.
--
$tar -xvf
If you walk into the computer science department at MIT, basically all the faculty have a Mac, and fully half the students do. These people are not buying Macs because they saw a cool ad on the bus - they're buying them because a Mac is the best tool available. ... Yeah, they're more expensive.
Pretty sure if you're going to pay $50k per year on your education then the 'best tool available' is a butler of some kind. If having somebody carry your books and supplies around saves you even a couple hours it's well worth it. Also, they can drop rose petals in front of you... can you Mac do that?
When it comes to productivity, lets see a Mac do this:
ssh -X hostaddr application
And have the GUI application pop up on a remote screen without the WHOLE screen like VNC.
WTF are you talking about? You have to do some special trickery to a) get the app to launch on a remote screen, and b) in WHOLE screen mode. When I launch remote commands using ssh from my macbook, I get the X app window on the macbook screen, as one would expect (with DISPLAY=:0) - just like on any sane unix box in existence.
FWIW, I prefer my Linux (and Solaris) in a VM in the mac. No hassle with external screen resolutions, WLAN roaming, switching between wired and wireless, etc.
And don't forget the VM support. I've never had Windows, Linux, or Solaris be so nicely behaved than in a VM on top of OS X, when the underlying OS handles all the screen resolution switching, WLAN roaming, hw virtualization, etc nasty stuff.
Perl is the worst language anybody ever invented, next to mindfuck. It looks like somebody ate C++ and two days later took a huge dump. Why anybody would want to use this abomination of a programming language is beyond me.
Yeah, because obviously the only alternative to Macs is running Linux!
Some of us value having a nice GUI to back up a solid set of internals without having to waste time and energy on fixing broken drivers and sticking patches on everything so that we can have a computer that does the things we ask of it without making exceptions for this, exceptions for that, patches for this, workaround for that. It's not 1993 and there's more to life than a command line.
So of us had a command line and a GUI way before 1993. Macs didn't even have a command line in 1993, or for years after. Is that the best that can be said of OS X - it has a command line and a GUI? Welcome to 1985.
Well, duh. Yes, they do. I do. With good reason. And so do many others, e.g.: X-plane's secret
It is interesting that this thread has stirred up a considerable amount of comparison of Mac to Linux. As a long time Linux user and a MAC Book Pro user of a year I have to comment.
1.
There is by far less fiddling with MACs than with Linux. That comparing a Mac portable to generic desktop hardware. I'm not sure how a reasonable person can say otherwise.
2.
Mac OS is not trouble free. Those of us with the Mac Books with WiFi problems can atest to that. Driver problems are not unique to Linux or any other platform for that matter.
3.
Interestingly while I consider the Mac to be about the best platform for commercial apps I'm not at all thrilled about the stability and over all quality of Aqua apps. Apparently Apple isn't either as they have said that they want to address this in Snow Leopard.
4.
I'm not sure that Snow Leopard can address all the issues in Aqua as the very nature of that dynamic, loosely typed environment seems to be part of the problem. After a year I'm pretty much convinced that non trivial apps on the Mac seem to go bad. Maybe that is a reflection on me but Apple does have serious problems with some of it's software.
5.
It is trivial to download and keep up to date with respect to many of the Open Source utilities. However should we really have to? This is where the vast majority of Linux distros win hands down, you don't have to wait for security and other updates to the various components in the suite. Package management is one area that Apple needs to put a lot of effort into to assure that security fixes are timely and effectively address bugs and performance issues. Waiting for months for a bulk 10.5.fx release is not OK. As a side note I've found that the third party resources like Fink to be totally useless, it is less trouble to build your self and that is saying something.
6.
You can easily run Linux in a virtual machine on a Mac. This works very well in my mind. Since I use a free VM environment it isn't perfect but it is good enough and actually provides for a better development environment.
Now onto "D".
D on Mac could be very successful if portable graphics library could be developed. Frankly I'm not impressed with Aqua and it's lack of portability is a big negative. I'm actually waiting hopefully for Snow Leopard to see if they can effectively address Aquas performance and stability issues. If that doesn't happen D with an open widget set might be more useful, acceptable and maybe even desirable on a Mac.
I have not used D the language but do like some of what I hear. Objective C seems to be to little in the way of a modern language. Now I don't consider myself to be even a remotely good C++ programmer but the language and it's standard libraries has a lot more to offer than Objective C. If D can offer up the same general feature set in an environment that is easy to master for the novice then it has big potential. As has been mentioned bindings and libraries are everything, to be successful on a Mac D would need both high level, D like access and low level access to UNIX. I need to read up on D more but it really does seem like an ideal language for those apps where Python can't do the job.
Note the last line above, I see much more of the world going to Python like environments where absolute speed isn't the issue. What that means for D is that it has to produce fast code. Further the programmer needs to be productive in D far more than Objective C.
So D needs to be fast but it also has to overcome the fact that it is late to the party. It will need to be compelling to displace C/C++ with respect to lowlevel programming and need fluid libraries to address the higher level competition. Considering the sad state of ADA, Java, C# and other languages I think D will have a tough time against the Cs.
Dave
A Mac is a genuine Unix workstation that is much easier to administer, and has much better software and hardware support than Linux.
My girlfriend owns a mac laptop. From time to time, I use it, since I do not own a laptop but only a desktop computer.
I just find it unusable, even to do the simplest of things. And I've actually spent time to read up on how Finder, Apps, the dock, and all those weird things work.
Really, the only usable way to use a Mac I found is to connect to it with ssh. And it seems it's the case for a lot of other people, too, including Walter Bright.
If you walk into the computer science department at MIT, basically all the faculty have a Mac, and fully half the students do. These people are not buying Macs because they saw a cool ad on the bus - they're buying them because a Mac is the best tool available.
Or rather, the laptop world is so riddled with crap it is the less bad option.
Basically, there are four choices:
- IBM/Lenovo
- Dell
- Sony
- Mac
Sony is usually not very competitive in terms of quality over price. IBM/Lenovo are the most reliable laptops out there, but they're too expensive. So it's down to Dell vs Mac.
Dell isn't that reliable for a linux setup. They do sell laptops with linux, but they're more expensive, have lower specs, and plainly suck.
Plus Macs comes with one extra: you can run Mac OS X, which can be fairly difficult to do (and also quite illegal) with non-Apple hardware.
So at the end of the day, people choose Mac, especially students since they get good discounts.
Windows sucks!
Sorry, but someone had to do it...
This ain't rocket surgery.
I'm curious to know what kinds of tasks you're talking about, because unless you're doing a lot of command-line type stuff, piping things around, there's nothing too difficult about the Mac interface.
Can you give us two or three examples?
"Slow down, Cowboy! It has been 3 years, 7 months and 26 days since you last successfully posted a comment."
You have to do some special trickery to a) get the app to launch on a remote screen
Nope, it works as done. The ssh system ensures proper X port forwarding.
Let's be clear. The limited capability here is the fact that you have to use a kludge like VNC or Apple Remote Desktop to access your computer remotely. Apple (and Microsoft) have ditched this "important feature" in favour of improving the UI experience for the user when they are sitting in front of the computer. And guess what, only a few people ever complain about the lack of this "important feature", the reason being that most of us do not lock our computers in server rooms and access them with X terminals.
It's clear that Apple (and Microsoft) have made the right decision because more than 99% of personal computers run one or other of those operating systems. Your "important feature" seems to be totally irrelevant to 99 and a bit percent of all computer users.
All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
As much as I like how far Gnome and KDE have come along, they are trailing, and serve only as evidence that NeXT made the right tradeoff 20 years ago.
Besides the fact this nothing more than nonsense, I was talking more about the X layer and how it is exploited by these environments.
Apart from if you want to run the most popular scripting language.
Yeah, you would never have such problems using HP UX or Solaris. Okay, but you won't have problems runnig RedHat
Lars T.
To the guy who modded me down from perfect to terrible Karma - Apple haters still suck
So you're saying that there are zero design wins from not having based everything on X. Really.
The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...
I was actually referring to basic graphical usage there.
The windowing system, where maximizing doesn't work, is just quite annoying, especially for browsing the Internet of stuff like that where fullscreen apps are better. Also the dock should really be set to auto-hide, because it feels very awkward otherwise with fullscreen apps. But then not always having the taskbar (or its equivalent) visible is also quite annoying to me, since I can't tell at a glance all the applications running.
The fact that apps don't stay closed when you close them is another annoyance.
The fact the menu is elsewhere is also quite annoying, since you have to be careful of focus and move the mouse across the screen.
There is also the issue of weird keyboard layout and keyboard shortcuts. Basically all Fx keys are disabled unless you press the Fn key, and everything you usually use Ctrl for you now need to use the Option key instead, which is less practical to press in my opinion due to being more to the right of the keyboard.
I simply find the classical layout, with normal windows and a real taskbar, more efficient to work with, even for simple things such as browsing the web, editing a few text files and sending a few emails.
Of course, I could tune Mac OS X to behave more like I would like to, but that's probably not worth the trouble since I scarcely use it.
Testing my little programs work from ssh is enough.
Depends what you like... Perl's a favourite of mine, probably because of the things you hate about it. It has a very natural feel to it, as the way which it's evolved, like natural spoken languages, there's all kinds of often hidden subtleties, and there's nearly always more than one way to do anything, different ways efficient in different ways and so good for different purposes. Downside of course is it's multithreading support (or rather, lack of it).
I like it for server stuff, as it's real easy to get it to detect when the code on disk has changed, load 'n compile it into memory, and splice it into what's already running... without losing any data structures or anything, and if there's any errors in the code, throw an error, and go back to the previous working version of that module. Without need for any close/restarts.
The revolution will not be televised... but it will have a page on Wikipedia
Heh, i've had way more trouble getting macs to do usefull stuff than linux. Usually it's a case of "macs don't do that, buy this shareware software to fill the glaring gap in the OS functionality". But just buy whatever you want i guess.
This is a joke. I am joking. Joke joke joke.
No.
Yeah offtopic.. but..
Even windows thinks a newline is \n, it just stores them in files as \r\n but presents them to programs as \n.
Yes, it's psychotic.
This dicsussion was over some time ago.
-josh
I like it for server stuff, as it's real easy to get it to detect when the code on disk has changed, load 'n compile it into memory, and splice it into what's already running... without losing any data structures or anything, and if there's any errors in the code, throw an error, and go back to the previous working version of that module. Without need for any close/restarts.
That's kind of bad-ass. Years ago I took a very brief look at perl and it just didn't look friendly, know what I mean? I may have to give it a second chance one of these days.
Your brain is not a computer.
Okay, meaning you're used to something else, and expect the Mac to work the same way?
The Mac doesn't have a "maximize" button - it has a "zoom" button, but this is a fair complaint because most apps don't handle it like they're supposed to. It's supposed to toggle between a user-selected state and an app-selected state. (Note to Apple: why doesn't it look like a toggle button?)
Me, I don't worry about it... I just set the window size to what I like, and it stays that way even when I quit and relaunch the browser.
A matter of taste - I hate when apps assume that I want to quit just because I closed the last window. Recent Apple apps behave this way, and it drives me nuts. What if I just want to open a new document? I can't close the existing window until after I've opened another?? Either way, it's not a show-stopper for usability. Is it that big a deal that the app stays open? How does that get in your way?
Again, a matter of taste. To me, the menus in Windows are "elsewhere", which is quite annoying. You still have to click in the window to use the embedded menu, so it's not that different from clicking a window to gain focus. Maybe one extra click if you don't know keyboard shortcuts or use contextual menus.
That's a new one. It used to be function keys worked like function keys, until Apple decided that controls for volume, brightness, and Expose were more important than program functions.
Saying you "usually use Ctrl" is Windows-centric, but even so, on my keyboard the Option key is right next to the Ctrl key - not that big a leap.
The "classical" layout is Mac style, it was Windows that took a different approach to the GUI. Basically all your gripes are minor things that annoy you because you learned something else first. That doesn't necessarily make the Mac way "wrong," it's just different than what you're used to. Trust me, to someone who learned on a Mac, these are not hindrances at all. If you learn some keyboard shortcuts (such as Command-Tab to see open apps and switch between them) you can be very efficient on a Mac.
Sorry if you don't enjoy using a Mac, but as someone who has to work with Windows, Mac, and X11 interfaces every day, and know what to expect on each, I just don't see this as a tough nut to crack.
"Slow down, Cowboy! It has been 3 years, 7 months and 26 days since you last successfully posted a comment."
Ah, the classic X client-server confusion - my local (where I am sitting) means your remote :)
i hate to troll but after looking at a comparison of C# syntax vs D syntax,
I get the feeling that they were both invented to be the "GC'ed, nicely templat'ed, clean syntax"
upscaling of C++, similar to what C++ was to C.
However, C# has the backing of M$ and D doesn't.
So in my mind, unless a miracle happens (like Qt turns out to be the primary GUI of choice for D and WPF turns out to be a REALLY bad idea)
D is dead in the water.
Disclaimer: I have tasted the white lines of C#+WPF and let me tell you, it is 100% pure coding goodness.
I dislike M$ as much as the next person but when it comes to getting the job done, C# delivers strongly.
Why would you try to use the header files from FreeBSD on Linux? The point of standard headers is that code can be written to an abstract interface exposed by the header files. When you move from one platform to another, the code works, even though the expansion of the macros is different, because the code does not make assumptions about how those macros are expanded.
Someone else suggested that you're trying to avoid redundant calls from D to C, but I suspect that you would in the long run end up with a faster and cleaner system by bypassing the stdio overhead completely, and calling read(), write(), and so on directly. The C runtime has an awful lot of historical baggage that you shouldn't need to carry over to D.
What happens when someone wants to use D on a platform that uses a glibc alternative, like uClibc? Do they have to hand-hack a new runtime?
Even their low-cost machines like Macbooks and Mac Minis are pretty beautiful. Compare it to the design of a lot of other small PCs - there's too much going on. The mac mini design is so elegant and minimalist - like all Apple's stuff, as the AC beside me says, they spend a lot of time throwing away stuff you don't *need*. Boiling things down to their essence is a difficult job.
Global symbol "$deity" requires explicit package name at line 2. - If only $scripture started "use strict;"
3. Usually some college kid with a semester of CS pops by and writes several pages about how sad it is that everyone is using high level languages and wasting all the processing power of the computer. Also, how they're using Linux instead of Windows (because Linux is written in C) and how it is much faster. All this without realizing that the browser they're writing it in probably has significant portions written in Javascript.
See this one? This is you! You really think no systems language can ever best C?
Either that, or the Windows users are busy actually getting work done while the mac/linux fanbois fight their pointless religious wars.
What's the point of "attacking" any OS to begin with? If you're content with what you use, good for you. I couldn't care less if you prefer Xenix or DR-DOS.
Quality, performance, value; you get only two, and you don't always get to pick.
The behavior of the function keys is selectable in the Keyboard Preference pane. The default actually makes much more sense when you realize that most Mac software does not make heavy use of the function keys. I suppose software like Office might, as it comes from the Windows world, or maybe Photoshop, which may just need zillions of shortcut keys. I don't use either, so I wouldn't know.
+1 Insightful
If anything ever deserved to be thrown into the pits of Mount Doom...
I know precisely zero people who use OS X as a Unix, though. Many of them were indeed classic Mac users, and most of the rest still use the classic-Mac all-GUI workflow, which is still the one Apple mostly promotes, especially on the desktop.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
That's the problem with Mac software: it can't accept the fact that UI guidelines are now being written by Windows world. Not being compatible enough with Windows UI behavior means nowadays being unusable for 90% of people (those accustomed to Windows + those accustomed to Windows-like X desktop environments)
(And as a sidenote: having menus right at the window relieves you from scrolling to the top of the screen after you set focus to that window. Screens are quite large these days).
Coding etudes
To quote Michael Bolton in Office Space:
"No way. Why should I change? He's the one who sucks!" :)
"Slow down, Cowboy! It has been 3 years, 7 months and 26 days since you last successfully posted a comment."
Well, I'm a (relatively) young man, but also have a worrying tendency to resist changes :)
Joel(onSoftware) has a nice article about what makes things usable and unusable (rule of least surprise IIRC). Too lazy to look it up now, but it could explain why Mac can be both usable (for you) and completely unusable for OP.
Coding etudes
> Joel(onSoftware) has a nice article about what makes things usable and unusable (rule of least surprise IIRC).
Joel has some good insights, as did the original Mac OS designers. But forgive me for saying that if these little design differences are enough to make an OS "unusable" to him, perhaps computing isn't a good career choice for him!
"Slow down, Cowboy! It has been 3 years, 7 months and 26 days since you last successfully posted a comment."
D is the language that tries to do it all. And - because of that - it fails for many projects out there. I would hate to take over a project from an experienced D application programmer; you are bound to have to learn an endless number of techniques. D will appeal to many former experienced C++ application programmers, but I would not recommend it for organizations. IMHO, C# and the .net framework is seriously trying to fall into the same trap. Java is one of the few languages that is still pretty clean, and even that now has generics put on top of it (without runtime support). With that respect, not many languages have learned much from C (and possibly Pascal).
If I would use it it would be as a C++ replacement for small projects, especially those that fit to its features.
Consider:
String A := "Hello"; := A;
String B
B.append (" World!");
What should A be and what should B be? Note the "should" and ":=" - I am not talking about any particular programming language. Say you see this code in an unknown programming language what would be the first expectation for A and B?
Mine certainly would be A is "Hello" and B is "Hello World!".
And String is a complex class and certainly is not used only 0.001% of all cases.
Martin
I have another one for you.
when the GC detects 0 references, b is discarded.
Actually a good GC will discard reference objects. Consider:
Some_Class_1 A;
Some_Class_2 B;
Some_Class_3 C;
A.My_B := B'Access; := C'Access; := A'Access;
B.My_C
C.My_A
What should happen when A, B and C go out of scope. A CG based purely of reference counting could not delete them as each of the elements still got a reference count of 1.
Advanced GCs of course will detect when a ring structure becomes an island and will deallocate the complete ring. But: finding a ring structure is a complex task which can not be done at every block closure.
http://en.wikipedia.org/wiki/Single_UNIX_Specification#Mac_OS_X_and_Mac_OS_X_Server
Yes, but is normally the default condition that the end of line terminates the command? Is this the case most of the time?
- Zav - Imagine a Beowulf cluster of insensitive clods...
> If you value your time at all, you should realize that spending an extra $100 on a Mac is well worth it if it improves your productivity.
I agree wholeheartedly. And if it were only an extra $100, my house would be full of Macs. We have one Mac for the stuff that runs best on the Mac. (Anything by Adobe, Garage Band, etc.) We also own three laptops. I've never paid more than $500 for a laptop. The last laptop I bought (mid-February) was right around $350 new in box preloaded with Vista Home. And I'm here to tell you, the very moment Macbooks are in that price range, Microsoft can kiss my shiny metal ass. But until then, well, we have one Mac. For the stuff that runs best on the Mac.
Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.