Hacker Newsnew | past | comments | ask | show | jobs | submit | ilyak's commentslogin

We are tired of you being loudly tired of Desktop Linux, FAVO you.


What does "FAVO" mean?


for all values of


However I'd say he's directly responsible for the misery the most PHP development now is.

If he actually spent time reading about languages and designing his own, he would throw in function namespacing and function naming conventions and a good built-in abstraction for database access (with a strong bias against SQL injections and towards placeholders/variable binding from the day one), PHP would come out an okayish language and not an universal hate target.

There are some other blunders that he could just not make. And I'm not even dreaming about template system that makes sense now.

He didn't! Who the hell could do that if he wasn't going.


Maybe if people who spent time knowing a lot about good language design spent some time making their languages practical, we wouldn't be in this situation either;-)


Well. Ruby?


I think Ruby and Python are reasonable examples of languages that make good compromises; they have some nice language features, but they are eminently usable for real world problems as well. Also, they are fairly approachable, even for people who are not CS majors.


Ramsus wanted to create a simple 'glue' language that was approachable and did the job done without any layers of abstraction that web framework like Zend and Symfony have. And he has stuck to his guns till today.


Therein lies one of my regrets: Tcl was out there and was already quite a nice 'simple glue language' that to this day remains more powerful and flexible than PHP in some ways. It's too bad the early Tcl/web systems were proprietary until too late:

http://en.wikipedia.org/wiki/AOLserver


You're the first person I've ever seen reminisce about aolserver.


It was way ahead of its time (read the wikipedia article), with a nicer language than PHP.

I never actually used it much (I was busy working on Apache Rivet), but it was a nice bit of technology.


It would never work without frameworks:

The PHP's default templating (stick code into templates) sucks (unusable for anything serious).

PHP's default routing (/foo/bar.php, lookup the file) sucks (you really really want one entry point for your web app.

PHP's default code layout (one PHP file per page) sucks too.

Idiomatic PHP is unusable! So you'd NEED a framework. Maybe homebrewn one. And if you're going for a framework, why not start with Django or Rails?

Every large-scale project in PHP contains an ad-hoc implementation of at least half of Django.


I try hard not to say that somebody is 'wrong', believing that different opinions are important - but your ranting about PHP is ill-informed at best, and outright wrong at worst.

What Lerdorf developed was initially a collection of C macro's and functions to make repetitive tasks for web application development easier. If you were developing web applications at the time, which I can safely assume you were not, since your arguments are restrained to comparisons with dev platforms popularized in the past few years, you would realize why the initial popularity of PHP and how it was developed makes sense. It allowed a lot of developers (read: most) with a C background to easily churn out buzzy web applications.

The Zend engine, was not developed by Lerdorf. It was hackish, simple but extremely fast because of mod_php and a decent vm. Combine that with the C syntax and easy administration and you have the core reasons why PHP blew out to be a raging success. As much as one may or may not like something, you do have to recognize that most things become popular for very good reasons - and bitching about them usually means that you are either a) smarter than the collective intelligence of the rest of the world, or b) ignorant.

Now to your points, they are just wrong. PHP has no concept of routing, that is what a web server does. One PHP file per page is also not true, again you are confusing two different things. There is also no 'default templating', I can pipe to, or make PHP calls from the command line. A programming language doesn't need templating outside of 'include' (which isn't a language thing - its an interpreter thing, but lets not get too deep).

So chill out for a moment and appreciate that what Rasmus achieved with PHP is by most measures a success, has a very important place in the web and web history, and like BASIC, Pascal, etc. before it was an important impetus for a whole new generation of people picking up programming.


"most things become popular for very good reasons" Sure. But those reasons are gone. Long gone. So please, wrap it out already.

"that is what a web server does" Did. Most PHP apps don't use /some-article.php and /another-article.php with relevant PHP files under those names, that would be bizzare. There surely is A routing FRAMEWORK those days.

"One PHP file per page is also not true" ...if you're using A FRAMEWORK.

"There is also no 'default templating', I can pipe to, or make PHP calls from the command line" So what? There's still default templating outside <? ?> And that's what you use unless you've got A FRAMEWORK.

Do you see a pattern here? The pattern is that you didn't read my comment, you used regexes instead. Sadly.


Blablabla. He may have gotten some details (yes, details) wrong, but he got the important part right: solving a real problem.


I'd go ugly early by saying that so did Hitler.


Well, we do have PHP5.3 now and it has namespaces as well as PDO.


But it still has 1000+ functions in the default namespace?

And every file still starts with <? And if one of them doesn't, then your web app would fail epically because you were gzipping your output into your output stream (one and only one), and this extra space in one of files ruined your gzip.

To be fair, it's wonderful that complex PHP apps ever work. It's a complete surprise to me, I'd say they run-by-accident.


You can easily pass an object into Javascript:

context.put(“rubyObject”, MyRubyClass.new)

Whether you would be able to call methods on it depends on whether the Snarl author did some (trivial) code magic or not, but it's certainly doable too.

Still I have no idea why would you want javascript in ruby in the first place.


Once you have a Javascript environment, it's not a large jump to emulate a minimal DOM -- see env.js, for example: http://ejohn.org/blog/bringing-the-browser-to-the-server/

With a stub DOM and Javascript interpreter, you can pass generated output from web application views directly into your testing environment and make assertions about the resulting behavior, dynamically-generated DOM nodes, etc.

There are a number of projects similar to this one (for which, sadly, I cannot currently pull up any bookmarks) mostly intended for a similar set of tasks. Being able to bring RSpec or Cucumber to bear on a hairy JS testing job can make the process much more enjoyable.


I looked at the code. I don't think that'd work.

As for using Javascript from Ruby, it might be quite nice as a language to let your users write extensions and plugins. It's a language where the implementations all have an emphasis on sandboxing.


Why not? I mean, rhino has methodNotFound-like thing, so you certainly can.


I meant I looked at the Snarl code, and it wasn't implemented there.

But you are right, it is technically possible.


Teach children to draw on a canvas in javascript.

You can easily make a page with a javascript editor and immediate evaluation if you wish, and simplified api.


Someone should build a social and pedagogical programming environment for kids on the web. The main problem here is the frustrating fact that one stupid browser doesn't support an HTML tag that's now 4 1/2 years old.


There are some very nice programming environments for kids. MIT Scratch (http://scratch.mit.edu/) immediately springs to mind, for example.

Any particular reason it needs to be web-based?


Yes, because every kid (at least in the 'developed' world) nowadays has web access but not every kid can install software on the machines they are allowed to use (for instance in school, the library or their parents' machine).


And, they can very easily show it to there friends, if it is in javascript. My niece loves designing webpages that she shares with her mates. Of course, getting her to program rather than put up pictures of twilight is another issue.


True. I guess these are the same two reasons anything needs to be web-based: (1)Easy to get started. No hurdles. (2) Sharing


Scratch is definitely a cool introduction to the world of programming. But I worry that in its attempt to make programming accessible sets up kids for a rude awakening. Most "real" programming isn't like that at all. Yet the kind of code I wrote in the 80s in Apple BASIC isn't so different "in kind" from a lot of the code I write professionally today.

Sorry for posting so many comments: I'm a teacher so the issue of computers, programming, and education fascinates me to no end :)


How is scratch so different from other programming environments ?


Typing. The physicality of an interaction is not to be understated. I've seen wizards with specialized interfaces (Flash, PhotoShop, Final Cut, etc) struggle miserably with text based input.


Yes, but programming is about patterns, and, in my opinion, patterns are more simple to spot visually than with text. It's maybe more important for a kid to learn that than learning about the "materiality" of programming.


> Teach children to draw on a canvas in javascript.

I've thought a few times that this is the modern equivalent of the immediate feedback "plot via BASIC".

It's even better, given the fact that JS is a decent language and the results are more easily shareable with your friends.


Are there decent tools to debug and check JS for you, so that you don't have to rely on the browser built-in support (which is incredibly forgiving but also doesn't tell you what is going on)?

A massive advantage of BASIC was that it would tell you it was wrong as soon as you typed something with a syntax error in it, and it put a big flashing "?" (or similar) right there until you fixed it. Can JS be made to do that?


Editor+syntax highlighting for static analysis, and firefox+firebug for runtime errors?


There's JSLint, you can surely build it in.

And it would have syntax colouring which basic lagged in.


China is the only major state left who is claiming to be communist; therefore, China now defines "communist".


If I was the only person left claiming to be [insert group of people here], would that mean that being a [said group] would be defined by me? Just because there is only one thing claiming to be something doesn't mean you can leave behind actual ancestry.

I (or anyone else) can claim to be a lot of things. That doesn't make it so.


I'd say that, in the world of politics, yes.


I'd agree with you if we were referring to political parties such as democrats or republicans. Those do (and have) changed over time, likely no longer standing in the same region of the political spectrum as they once did. I'd also agree with you on ambiguous terms like liberal and conservative, which are relative terms. Communism isn't that ambiguous or relative. It represents a fixed set of ideologies like laissez faire[1]. It may not work or it may be completely unattainable, but that isn't the point. If you call something a duck, it should walk like a duck and quack like a duck. If it doesn't, well, it probably isn't a duck.

1. Communism and laissez faire are obviously different ideologically, but they are still somewhat fixed ideologies.


"...the lack of trained and skilled workers as opposed to the surging numbers of graduates has led to the emergence of an abnormal trend where graduates are paid the same or even less than migrant laborers."

Everybody wants to talk and earn, nobody wants to actually work.

Do you see a problem here?


yes


It's different in that, being common lisp, it's actually useless. Might be fun to tinker, tho, with its CLOS and stuff.


Useless how?

It has all the relevant constructs you'd need and more. And it runs on a JVM with access to Java lower level libraries.

Far from useless I'd say.


Clojure is two years old and already has more useful software being written in than CL.

CL is a failure, admit it.


> already has more useful software being written in than CL.

Like what? Those crippled Java wrappers?

> CL is a failure, admit it.

You are a failure, admit it. Since you are not popular (I don't know who you are), you are useless. (Your broken logic in practice.)


ilyak is incorrect, but I'm curious why you feel popularity has anything to do with it.


Nope it isn't.

I've heard about CL, know a few things about it, and it's a failure nontheless.

Its problem isn't the unpopularity between Blub programmers; its problem is its unpopularity even between geeks. Even language geeks!


So, you have "heard", really, I am amazed. You must really know a lot about it.

Repeating your broken popularity based measurement applied to different group of people does not make it any more correct, sorry.


Sorry, but for programming language, popularity is everything. It's a social phenomenon, it grows superlinearly with number of users.

And languages become popular and unpopular for a reason.

For common lisp, those reasons are:

It's ancient.

Parties interested in it can't agree on anything so its development is stalled.

It claims to have a huge library which is tiny by 2009 standards, and doesn't have vital things like network i/o or unicode. Yes, implementations support those proprietarely, yet noone cares, because it's not in standard libs.

It has problems with reflection, which is doubly awful for a lisp.

CLOS is interesting, but for most uses smalltalkingly simple OO would be much more desirable.

Tool support is neliglible.


You clearly haven't used the language on real world project. In CL world, there is enough people interested to develop actively several implementations.

Also, you (as others making opinion on language from blog posts) are for some reason fixated on the idea of stuff in standard library. When it's not in standard, it doesn't exist. Wrong.

You forgot that in CL, library developer has the same freedom as CL implementer. You are welcome to roll your own continuations, embedded compiler or transaction layer in your chosen popular blub for example.

All your reasons are superficial.

The "ancient" argument is not worth commenting.

Unicode has just about every CL already implemented.

Explain your reflection reservations. Heard about http://common-lisp.net/project/closer ?

You can emulate single-dispatch of Smalltalk OO in exactly 0% of wrapper code.

And tools, I hardly miss something when tracing, profiling, code completion, live upgrades, image snapshots are either solved by standard, implementation or SLIME.

Also you forgot to write that "LISP is interpreted and slow" once again.


"Also you forgot to write that" Okay. You want to argue with yourself not with me, to the point when you start rewriting my claims. So, you go and argue with yourself.


We can hardly argue about CL when you know nothing about it.

Your "arguments" seemed like common set of misconceptions about CL, the "LISP is slow" is such a folklore that I thought you forgot to write it, that's all.


JBoss's "tattletale" program does just that for a few years already.

Maybe it doesn't draw pretty drawings, but otherwise it's oldnews.


And what you need, it is not a fancy representation (from a closed source program). What you actualy need is the information itself for your custom reporting needs.

May I ask if you can export all of this info (in a readable format)?

EDIT: answer of the above from the article: Currently you can save diagrams as XPS files and it also possible to copy diagram or legend to clipboard as image

jpg is readable, but wasnt what I was looking for :(


And IntelliJ has integrated the dependency matrix for… quite a long time.


...and newer Windows default on the local (i.e. cyrillic) layout.

Some clueless linux distros even install cyrillic layout as the only one; which is completely unusable of course.


Small languages may be interesting but we just don't have enough humans to speak them all, as humans don't want to study small languages unless they happen to be hobbysts or acquire that language as children.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: