Slashdot Log In
Anders Hejlsberg Interviewed On C#
Posted by
timothy
on Fri Aug 04, 2000 01:18 PM
from the oh-well-I'm-sorry-but-this-is-abuse dept.
from the oh-well-I'm-sorry-but-this-is-abuse dept.
ghost. writes: "I'm sure it's been submitted already, but here's an O'Reilly interview with Anders Hejlsberg, Chief C# language architect for Microsoft (as well as the force behind Turbo Pascal and Delphi, in the past). While my interest in C# specifically is mild at best, I always seem to learn a lot when /. gets into a good discussion about programming and language design, and I'd enjoy reading everyone's insight based on what Hejlsberg had to say." It's a good read, too -- this interview brings to the fore some of the questions about openness that people raise about C#, and Hejlsberg has strong words about his new baby.
This discussion has been archived.
No new comments can be posted.
Anders Hejlsberg Interviewed On C#
|
Log In/Create an Account
| Top
| 381 comments
(Spill at 50!) | Index Only
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
This guy gets around - (Score:5)
Good details on C# as described in The Register [theregister.co.uk]
Re:This guy gets around - (Score:3)
One thing I'd like to see is a GNU C# compiler. I assume this will be worked on by those over at egcs, once the standard becomes available?
Anders Hejlsberg != Microsoft ? (Score:3)
This guy definitely knows his stuff, and he had some very interesting things to say about his baby. I would almost get the impression that this guy is one of the lucky ones who doesn't represent the image of his company.
Of course, I could just be easily fooled. Did anyone else count how many times he mentioned "innovation"? :P
Poor Andres (Score:3)
Visual Basic Inherently Save (Score:4)
Osborn:
So you can't write unsafe code in VB?
Hejlsberg:
No, you cannot.
:)
-Waldo
-------------------
C# ECMA Standardization (Score:5)
with humpy love,
Re:Hmmm... (Score:3)
Even Sun does this, deprecating / adding / altering... Java is an imperfect language in flux, and even Sun knows this as demonstrated by the rate of change. I have no problem with MS also recognizing this and deciding that they'd make slightly different design decisions, which apparently they do.
Why C# is better... (Score:5)
"In C#, enums are not just integers. They're actually strongly typed value types that derive from System.Enum in the
Wow! Now, next time I accidentally set the colour of my car to "Tuesday", the compiler will throw a hissy-fit at me! Hooray for C-#!
Donny
Open Source (Score:4)
...I think we've done a great job supporting COM on the .NET platform. But people in the industry have been reading too much into our use of the words COM and DLL. They conclude that the .NET platform is for Windows platforms only, and that's absolutely incorrect.
People have read too much into the comments because of Microsoft's past actions. It would be really nice to think that they are fully supporting open standards for SOAP and C#. SOAP has tremendous potential. Reading this gives me some hope... Until I think about every Microsoft product's perverted implementation of standard.
I feel like a guy who just met a pretty girl at the bar. I *know* I'm not going to get to take her home, but the **slightest chance** that it might happen has me buying drinks and listening to her every word all night.
Only 9 Main Developers? (Score:4)
The language design team consisted of four people. The compiler team had another five developers.
Working with such a small team seems just too cool for Microsoft. To be fair, he says that the "the whole company" was involved with the framework. I think it's actually a good sign for C# that it was made with such a small team.
-Waldo
-------------------
Which company will get this? (Score:3)
While this might sound like it only has a tenuous relationship to the topic on hand, it is extremely important to the survival of C#. Why? Platform Independence. As much as they would like to claim so, C# is far from platform-independent. Microsoft likes it that way. So what will happen if it goes to the Windows division? Lock-in. While Java was destroyed by inconsistencies (one might say purposeful inconsistencies) in different implementations *cough*Microsoft's*cough*, C# will be destroyed by only being available for one platform. As Windoze slowly dies a painful death, it will take
If Microsoft is split up and
When I was reading this article, I actually was quite impressed with the language. But as far as I'm concerned, there are two options:
1: The
2: The
--
Microsoft Programmer Called As Defense Witness (Score:4)
"We will be presenting the judge and jury with a simple question," said attorney Rick Oxford. "Is it possible to write unsafe code in Visual Basic? Microsoft has already provided us with the answer: No."
Oxford was referring to a recent interview with Hejlsberg published on www.oreilly.com. In it, the interviewer asked whether it was possible to write unsafe code in Visual Basic; Hejlsberg replied, "No, you cannot."
US Attorney-General Janet Reno was flummoxed. "I'm flummoxed," she admitted. "That pretty much sinks our whole case right there. But you can be we'll make Gates pay for this." This comment sent Microsoft (NASDAQ: MSFT) share prices plummeting to 0-7/8 per share.
Free Software Founation founder Richard M. Stallman was unavailable for comment. A spokeswoman said he was "busy buying Visual Basic For Dummies(tm)".
This is so bogus... (Score:5)
That's great, but his examples are stupid. Cases in point:
"one of our key design goals was to make the C# language component-oriented, to add to the language itself all of the concepts that you need when you write components. Concepts such as properties, methods, events, attributes, and documentation are all first-class language constructs."
Sure. That's new.
"And C# is the first language to incorporate XML comment tags that can be used by the compiler to generate readable documentation directly from source code."
So what? Ever heard of JavaDoc? POD? Having to code your comments in XML isn't a revolutionary leap (forward, anyhow).
"One of the key differences between C# and these other languages, particularly Java, is that we tried to stay much closer to C++ in our design."
-snip-
"Another important concept is what I call "one-stop-shopping software." When you write code in C#, you write everything in one place. There is no need for header files, IDL files (Interface Definition Language), GUIDs and complicated interfaces."
What?? First, C++ is the master of header files and interfaces. To write a language eliminating these is a good thing, but it's moving away from C++ and towards more modern languages like Java, not vice-versa. And even so, how can you say you're creating a highly component-ized language and then write everything in one place? OO-Pascal?
The most annoying thing about this interview is Hejlsberg's stance that people should choose C# because "We're starting with a clean sheet of paper" building a language from scratch. This has been done several times, but too often the first thing that happens to that clean sheet of paper is that it gets marked up with the motives of the creating body, in this case, anti-Java, anti-interoperability Microsoft.
Don't forget this is the same company that spearheaded the standardization of CSS, yet still fails to support the standard correctly in their browsers.
I'd just as soon start using Dylan [isr.com] exclusively.
Kevin Fox
Unbelievable... (Score:3)
'This notion that Java is 100% pure and gives you 100% portability just isn't true. There's a great interview with James Gosling on IBM's developer works site in which he directly addresses this issue. He said, yeah, the whole right-once-run-anywhere, 100%-pure-thing was a really goofy idea, and was more of a marketing thing. He says, in effect, "We didn't think we'd ever be able to deliver all that, and basically we haven't." Here's the inventor of the language saying that neither purity nor portability exists.'
The Gosling interview he refers to is here:
http://www-4.ibm.com/software/developer/feature
Check out the part he's referring to. The Microsoft guy is totally misrepresenting what Gosling says.
Disappointing but unsurprising... (Score:3)
Of course, for a more radically "innovative" approach, Microsoft already hired Simon Peyton-Jones, [microsoft.com] of some "fame" in the world of Functional Programming, and furthermore, he already had C--, [microsoft.com] Still Another "BCPL stepchild."
There are probably a whole pile of "cool things" that have been deployed internally that might actually be good things that will never see the light of day because, as Matt Welsh observes,
That can apply as well to languages as to OSes...
Re:Which company will get this? (Score:3)
documentation (Score:4)
So the compiler uses the tags to generate documentation? Cool.. I don't have to document anymore... I just put in a tag and let the compiler figure out what my code actually does.
This will be a great debugging tool!
wish
---
Re: GUIDs adn IDLs (Score:3)
Let me see if I understand:
"You know all crap we've been forcing you to use to make your code work in our byzantine operating system for the past ten years? Well, turns out it wasn't actually as pleasant as we told you it would be, and we can do without it. Please don't lynch us for your RSI."
Anders twisting James Gosling's word... (Score:4)
... There's a great interview with James Gosling on IBM's developer works site in which he directly addresses this issue. He said, yeah, the whole right-once-run-anywhere, 100%-pure-thing was a really goofy idea, and was more of a marketing thing. He says, in effect, "We didn't think we'd ever be able to deliver all that, and basically we haven't." Here's the inventor of the language saying that neither purity nor portability exists.
And this is what James said:
"The perfect goal of "write once, run anywhere, anything runs on anything" is just goofy. You're never going to run some piece of weather modeling software on a toaster [laughs]. And you wouldn't want to. So there are some scale and capability limits. But within that, you can do an awful lot to make sure that if somebody wants to read a file, it looks the same everywhere reading a file makes sense."
This is clearly a misquote. Gosling is saying that a toaster can't run a weather simulation package (yes, that is goofy). There are physical limits to what you *can* run (ie: you can't run an app with a display requirement of 4000x2000 on a handheld PC with a display of 100x100, or one requiring 128MB on a 64Kb watch). Nothing here is really surprising - Java's strength is trying to hide the minor differences so that you don't need to worry about these while moving between platforms (even some platforms that vary wildly in terms of physical specifications).
Re:Visual Basic Inherently Save (Score:3)
Re:Only 9 Main Developers? (Score:3)
-Jon
This isn't about VBScript! (Score:5)
This will probably be moderated down as (obvious -1), but people are already responding with posts about VBScript kiddies etc...
I'm not impressed- I've seen all this before... (Score:3)
What does C# add to Smalltalk, and contribute to the the innovation of language design? Not much. It has "attributes," which are nothing more than embedded XML comments; COM integration (good if you're on Windows, but you could always use Dolphin Smalltalk [object-arts.com] for that; SOAP integration (Dandy, but it's available for almost every language around); compilation (you can do this with Smalltalk MT); and the ability to regress back into C-pointer mode to write "unsafe" code, to make sure the incompetent GC doesn't eat your objects (which were never rooted, probably by an incompetent programmer).
Many of these things are neat and useful, but reek of the sad state of language design nowadays, and available elsewhere with or without add-on packages.
What's almost as sad, is that a lot of programmers are in awe at the power of C# and Java, with their heads too buried in the sand of C's syntax to see the innovations that Smalltalk (cf. Squeak [squeak.org]) made 20 years ago.
MICROSOFT HAVE FINALLY GOT IT! (Score:4)
Who's helping COBOL programmers today? Who's taking them to the Web? Only on the .NET platform can you embed Fujitsu COBOL in an ASP page. I mean it's truly revolutionary.
THANK GOD! This truly is revolutionary! Yay Microsoft, you have finally made the web usable for the 1970s. I, and half a dozen COBOL programmers who couldn't really get INTO asp until now, thank you.
:D
sig:
Anders was NOT the Delphi god he's made out to be. (Score:3)
When Anders took over as the Borland Pascal Chief Architect (note: Delphi didn't exist yet). What he succeeded in doing was developing a product that nearly faded into the dev tool "Where is it now?" bin. It almost disappeared! VB was swallowing up BP programmers like crazy. Knock VB all you want (God knows I do), it was a *much* easier tool to develop Windows apps with because of that Visual paradigm that's so standard in tools today.
Then, one day, Anders gets this "brilliant idea" to take the BP language and put a visual interface on it! What a great idea! Why didn't anyone else think of that!?? (hmmm...)
The people that made Delphi a great tool then and continue to make it a great tool today are *still at Borland*. Anders came up with *one* idea - the Delphi *team* made that dream a reality.
I love Delphi, and I wish Anders well, but don't think that just because C# has his name on it that it will just automatically be great. That's the hype that Microsoft is hoping you'll buy into.
Level of honesty displayed (Score:4)
Re:Anders Hejlsberg != Microsoft ? (Score:5)
8
$
--
Lemme just pick this appart... (Score:4)
I was under the impression that one of Java's big strengths was that it didn't stick too closely to C++, and actually had a coherent, consistant design.
Why are there no enums in Java, for example?
Granted, having type-safe enums would be nice; but is this really a big enough flaw to design a language around?
one of our key design goals was to make the C# language component-oriented
Great... they're making it easier for us to write stuff to sell to those VB guys...
C# is the first language to incorporate XML comment tags
OOOER!!! XML tags. I'm glad Microsoft has decided that it's time to follow the industry standard hype. {MumbleMumbleJavaDocMumbleMumble}
Developers are building software components these days. They're not building monolithic applications or monolithic class libraries.
trans: Why bother writing decent software, when some schmuck who's never heard of a linked list can do it in less than half the time with VB (and nobody'll notice the difference)? Might as well accept that, and sell him the bits he uses to do it with.
We focused hard on giving programmers all of the right solutions for interoperating with Internet standards, such as HTTP, HTML, XML, and with existing Microsoft technologies
Well, what else do you need? HTTP, HTML, XML and M$? I should have figured that out a long time ago, and just taken UDP out of my TCP/IP stack altogether.
. Unsafe code allows you to write inline C code with pointers
If you need to write unsafe code to ensure that things don't get "accidentally garbage-collected" either the GC is worthless, or you're failing to fully utilize the paradigm.
people seem to think we're on drugs or something. I think it's a misunderstanding
Yes... the guys at Berkely were doing drugs when they wrote BSD. They guys at M$ are obviously too sober to put ideals over profit.
Only on the
The only revolution I want to involving COBOL very closely resembles the French revolution. Guilotines and all.
with C# we were able to start with a clean sheet of paper
Hrmm... earlier they were talking about how it stayed closer to C++ than Java did; now it's a "clean sheet of paper". I really wish they could make up their mind.
The unification of programming models, which the
So, they've learned the error of their ways, and have decided to bring the new unified APIs into the world with a new language?
one of the key differences between our IL design and Java byte code
And this is important how? Are they saying you can't run it interpreted? Anyways, I'd like to see a JIT compiler do better than the Hotspot model (interpretation + realtime profiling to find sections of code to compile to native code).
you can name your source files anything you want.
For some reason they seem to think this is important. I fail to see it. Skinable filenames?
I think developers will find the release of Visual Studio
It's a little late for them to start worrying about quality now; they're getting their asses Ma-Belled.
Re:innovation (Score:3)
DOS - bought for $50k
Winders - ripped off from Apple who bought a tour to see it from Xerox who ripped it off from whats-his-nuts who worked at SRI who, in turn, stole it from Leonardo DaVinci (no, really, the design for the mouse is on the same page as the helicopter...)
Word - Oh, come on. It's a word processor
Excel - Nabbed from Visi-whats-it
PowerPoint - bought
Netscape - No, wait, I mean Mosaic... no, wait I mean Explorer
SQL - New MS innovation removes letters P and L from this acronym.
Age of Empires - No, really, it's Warcraft.
In fact, the only thing I can think of that MS really innovated on was PayWare with the Tiny Basic brouhaha... unless I'm missing something really big and obvious.
The real benefit of C# (Score:3)
That doesn't mean it's entirely worthless, though; in fact, the real benefit of C# might be that it guilts Sun into finally submitting Java to a real standards body. Sun likes to portray itself as an open company, and that image has largely flown up until now -- but when the contrast of Microsoft standardizing C# and Sun zealously guarding Java becomes too glaring, Sun's going to look decidedly less friendly. With any luck, Microsoft's pressure will push Sun into doing the right thing.
C#, the next M$ stop-gap? (Score:3)
I'll reserve absolute judgement until I play with it, but, here's a thought:
Whenever M$ gets backed into a corner by a competing technology that they either can not buy, or can't catch up to early, they release a vaporous competitor. This 'alternative' is intended to
1) bring in a cash infusion from the 'early adopters' of all things Microsoft (Usually clueless managers who mandate to unwilling IT staffs),
2) get FUD and fluff from magazine article writers from Ziff-Davis who are so deep in M$'s hip pocket they eat lint,
3) engineer public opinion that M$ has something better than the competition, 'just waiting in the wings'.
M$ most recently did this with WinCE, as a response to the PalmPilot. They had no real alternative to PalmOS, so they just threw something together and hoped it would stick enough to eat away at Palm. Now that they've had a few years to look at the problem, they release PocketPC - not an improvement IMHO; but I digress.
C# looks like round 2 of the Java war. Period. It's not INNOVATIVE in the least. It's a different way of doing things. It rolls together some previous ideas (comment markup, components, C syntax, M$-specific VM to run the bytecode) to see what will stick.
As with all things M$, it's probably a good idea to wait until Version 3.1, to see what it has to offer BESIDES an alternative to solid technology.
Re:Anders Hejlsberg != Microsoft ? (Score:3)
The original design for NT was done right. Marketing stepped in and it went down the toilet. I feel sorry for Mr. Cutler for having to watch the marketroids mutate his product into the freakish monstrosity it is today.
Re:Unbelievable... (Score:3)
The perfect goal of "write once, run anywhere, anything runs on anything" is just goofy. You're never going to run some piece of weather modeling software on a toaster [laughs]. And you wouldn't want to. So there are some scale and capability limits. But within that, you can do an awful lot to make sure that if somebody wants to read a file, it looks the same everywhere reading a file makes sense.
That's a lot different, I'd say, than Gosling saying that "neither purity nor portability exists", and that it was "more of a marketing thing." My interpretation: All he's admitting is that you'll never have all the various platforms in the world (e.g., a toaster and a PC) be identical. An iMac isn't a Cray SV1. Therefore, perfect "write once, run anywhere, anything runs on anything" cannot exist, but one can get really close (i.e., as close as the hardware and the tasks and hand allow).
Re:I can't wait... (Score:3)
Re:Anders twisting James Gosling's word... (Score:5)
Re:Why Another One? (Score:4)
I think lots about this, really, truly:
1. Too many languages? No. Too many C's? maybe. People keep going back to C as the lingua franca so there has to be something to it. If you're going to come up with a new language, sticking to C roots may be the best way to ensure durability.
2. Languages will have to become more spcialized as time progresses and the complexity and scale of computing tasks grow. The future I see in my crystal ball (written in C, btw) are languages devoted to specific tasks such as cgi, game development etc. In a lot of ways this is a throw back to the early days of Fortran, Lisp and Cobol which were non-general languages. There weren't really the issues of scale and complexity back then though that we face now, so it was fairly easy for C to sweep them under the rug.
3. Future specialized languages will almost assuredly be themselves written in c. I'm not talking about yacc-hacks but honest-to-god interpreted or even compiled languages. What this means, though, is that in a future with fragmented languages used for specialized purposes, people looking to expand their power and control will look back to the source of those languages construction which leads to point 4.
4. Which is the same as point 1. People keep going back to the lingua franca.... so future specialized languages should stick closely to C while maintaining all the neat features that make them specialized in the first place...
Was that a bit scattered? Sorry, it's clearly organized in my head, but I haven't gotten around to scribbling out the boxes and arrows yet...
Re:Which company will get this? (Score:3)
Sure if you are a good programmer and actually do garbage collection. As a physics major doing research using computer programs written by decent programmers who don't do their own garbage collection, I become very glad when I see a program written in Java because it has garbage collection. There is one program that the group that I am in uses, after a couple of hours it has leaked over a gig of memory. Trust me, it is no fun when several of the more powerful machines in the lab are down because there is a desparite rush for another large set of the events that this program simulates. Sure it is possible to create memory leaks in Java, but it isn't as easy to do on accedent.
To each his own. I do agree that for an object oriented language, the idea of having everything in one file is a bit screwy.
Slashdot goggles (Score:3)
The fact is, when it comes down to it, every high level language concept can be done in assembly or machine code. Big deal. The important part is how does the high-level language make the programmers life easier (and thus improve their productivity).
Stop your bitching, start thinking how C# might make you a better programmer. Tim Sweeney has written an article [gamespy.com] that you need to read. Although (from what I can tell) C# doesn't meet all his ideas of a "next generation" programming language, it is closer than C++ or Java. A quote for the whiners:
Assembly programmers didn't realize they needed processor-independence; it doesn't seem like a practical concept when your life's work is focused on micro-optimizing individual CPU instructions and register usage. C programmers didn't realize they needed objects because, after all, the world is made of functions and data structures! This seems silly nowadays, but at the time, C programmers had become so accustomed to the strengths and limitations of their language that they thought: since it's so difficult to express object-orientation in C, object-orientation must be a flawed concept. It wasn't then clear that C was simple a poor language for object orientation.
Similarly, most programmers don't see the fatal flaws in C++ and Java. People tend to look at the failings of C++ frameworks, component-based software, and binary platform independence, and deduce that those concepts are flawed. It isn't clear to most people that C++ and Java are simply poor languages for frameworks, and parametric polymorphism, and binary portability. Most programmers never switch languages. Either they don't want to, or the circumstances of their job don't allow them the luxury.
SARCASM: Wow! COBOL on the web! /SARCASM (Score:3)
Only on the .NET platform can you embed Fujitsu COBOL in an ASP page. I mean it's truly revolutionary.
HAHAHAHAHAHAHA!!! I almost fell out of my chair when I read that. ASP in COBOL???? Revolutionary??? Maybe Microsoft should also bring back some UNIVACS to run their .NET servers on :)
Never knock on Death's door:
My fav inconsistency (Score:3)
we tried to stay much closer to C++ in our design. C# borrows most of its operators, keywords, and statements directly from C++. We have also kept a number of language features that Java dropped.
Then about a third of the way thru...
with C# we were able to start with a clean sheet of paper, so to speak. We did not have any backward compatibility requirements
Previously the interview had been at least interesting, but from here on he lost all credibility with me. I think he has been absorbed into the borg and has lost the power of independent thought.
--
Re:This is so bogus... (Score:3)
--
Re:This is so bogus... (Score:5)
While more 'complete' than Netscape's CSS implementation, it's inconsistant, not only internally, but also across Mac and Windows platforms running the same version of IE. Regardless of other browsers, standards don't do the developer any good unless they are actually standard.
Supporting evidence can be found here [webreview.com] and here [webreview.com].
Kevin Fox
"unsafe" is a matter of implementation (Score:4)
I'm still disappointed that nobody seems to have come out with a universal sandbox that isn't tied to any system or language. Emulation of real-world systems is very complex (and therefore hard to optimize and debug), and if you put in mandatory features like garbage collection in the Java runtime, it's very hard to write compilers for certain languages.
BTW, I think calling it C# is a cheap stunt that will just add to name confusion. C is all about pointers, if pointers are frowned on as "unsafe", rather than the default way of doing things, it's not C.
---
Despite rumors to the contrary, I am not a turnip.
Re:My fav inconsistency (Score:3)
Taking the syntax of C++ is not inconsistent with starting with a clean sheet of paper. Next you'll be saying "Aha, the code is written in ENGLISH! Ha ha ha, and they said they were going to start with a clean slate!"
Re:SARCASM: Wow! COBOL on the web! /SARCASM (Score:3)
Re:Stroustrup's opinion? (Score:3)
Has anyone ever heard what C++ inventor Stroustrup thinks about the latest addition to the C family?!
Actually, this is in his FAQ [att.com]. Since it is a short answer, I will carbon copy it here:
What do you think of C#?
I have no comments on C# as a language. It will take a lot to pursuade me that the world needs yet another proprietary language (YAPL). It will be especially hard to persuade me that it needs a language that is geared for a specific proprietary operating system.
Clearly, I'm no great fan of proprietary languages, and quite a fan of open, formal standards.
--
Re:The more they evolve, the more they turn into L (Score:3)
In my experience with Allegro Common LISP, the compiler produces dog-slow code even on the highest "optimization" settings. I laugh at this paper that "shows" LISP to be 50% faster than C++. There are always articles saying Language X is faster than Language Y, no matter what X and Y are. They set out to prove something, and prove it, by ignoring evidence to the contrary and magnitfying supporting evidence. If you're convinced by this paper, and not just wowed by its conclusion (hey, you obviously love LISP) then maybe I should read it.
Just looking at CLOS, the amount of effort the compiler has to make just to dispatch a method invocation makes it seem extremely unlikely to me that a CLOS program is ever going to even approach an equivalent C++ program in speed terms.
Mind you, I only have experience with ACL (Allegro Common LISP) which performs extremely poorly. If you know of a faster compiler which is commercially available, please let me know!!! We have a mission-critical application written in CLOS which needs an order-of-magnitude speed improvement. I was considering recoding it in C++ ;)
You mention many features of LISP which are useful - and indeed they are. LISP is very good at wrapping things in other things. That's all its syntax does, so it should be ;) However, Smalltalk has an equally powerful object model, and it uses the more friendly infix notation (let's face it, prefix notation is unreadable to anyone but Ubergeeks).
As to your obfuscated C function, well wow, I've never seen one of those before ;) I can't be bothered decoding that function. It has no comments, no meaningful variable names, and no meaningful function name. If I had to guess I'd say it was doing an operation on a balanced tree.
But my point about syntax is that C's syntax helps you read the code, whereas LISP's syntax gives you no help at all. Sure you can write ugly C and LISP code, but I defy you to show me pretty LISP code! No-one's saying that every C program is readable - many quite famously are not - but we are trying very very hard to make our LISP code readable, and still failing.
LISP is certainly a more powerful language than C++, I'll concede that, but that sort of power scares me. Wait until you work on a bigass project and you'll see why.