Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Is Flex/Actionscript a real programming language? Can it do what Java does? (work offline, write files, networking etc.)
9 points by juwo on April 28, 2007 | hide | past | favorite | 26 comments


Yes , it can be used to build applications with those capabilities. But depends on how you implement it ..just like Java. When implemented in browser, most of the sandbox restrictions apply.[Like java applets]. But when implemented in a desktop environment [using an OS dependent wrapper or on top of runtime like Apollo], it can write files to disk and do otherwise taboo karmas.

For updates on whats going on in actionscript community[or Adobe technologies in general], subscribe to Adobe's MXNA . Some of the finest Actionscript coders can be found at flashcoders pipermail list. [chattyfig.figleaf.com/mailman/private/flashcoders/]

For an opensource perspective on Flash and Actionscript visit: osflash.org


ECMAScript (the standard that action script is built upon) is turing complete, therefore Actionscript is a real language.


Touche.


Even Bruce Eckel who wrote the popular Java books, "Thinking in Java", has switched sides and is backing Flex.

Qs: Can your application if written in Flex;

1) can it open/close files, in Flex?

2) FTP stuff across, open network connections?

3) can it work offline?

If ActionScript is simply a scripting language in the browser, then I doubt it can do the above. So why the hype? - Anil


http://flexblog.faratasystems.com/?p=115

The answer to the initial question, "Is Actionscript 3 a 'real' programming language?" depends entirely on who you're asking.

1) Flex application run in a sandbox, much as Java applets do. Locally, and currently, Flex applications can open files for parsing, but can not write to them. This is remedied with Apollo which is in alpha. Apollo is essentially a Flex application wrapper that provides a file system API, among other things.

2) This really becomes a question of whether or not someone is inclined enough to write the necessary Actionscript 3 as it supports binary sockets and byte arrays currently. Someone has already created a ZIP library.

3) Again, when Apollo launches, then yes. Although, a Flex application can run offline should it not require file system access, and even then files can be opened, just not written to.

Actionscript runs in a VM just as Java does, which is irrelevant given that the questions you're asking are entirely arbitrary. The answers to which only tangentially, and tenuously, provide support in defining whether or not a programming language is 'real'.

In the interests of providing my own answer... I would say no, it's not quite a 'real' programming language.


My interest was - juwo has no users apart from myself. I was wondering about rewriting it in flex.


Do you think rewriting it in Flex will provide you new users?


Have you downloaded and run juwo?

Why not? Please tell us frankly.

The answer can be revealing.


The hype is because you can possibly simplify rich websites by fitting your web content into the standardized widgets that Flex provides you, thus speeding up development a lot.


I think flex will be the perfect platform for mobile devices where the offline/online is needed more.


Not really. Basically Flex is swf itself. ie., flash content. Currently Flash content is playable on devices that come with Flash Lite player from Adobe. As of now,in Flash Lite,data can be temporarily stored on devices using shared objects.


Not to mention Flex/Flash's ability to scale to screen size is much more flexible than laying out pages via XHTML/CSS


Why would you want to compare it to java? Ye gods man, java/c/c++/c# aren't exactly the kind of languages I'd want a new language to compare with.

Python, Ruby, Haskell98, ocaml, etc. Consider those your languages that set the bar right now. Java is 'the new' C.


Never heard of them. (heard of ruby only here, in YC).

old wine in new bottles.

if-then-else by any other name... is just as tedious.


heh, that's what you think. Try building anything substantial in one of the languages I named and then going back to java.

Ruby programs are maybe a tenth the size, give or take,

Python similarly small.

Haskell will blow your mind because you basically never use control structures or type declarations.

Continuation-passing scheme, smalltalk, erlang...

Any of these things will change the way you develop, probably immensely for the better.


can I write a standalone desktop program in Ruby? (I dont know).

BTW my feedback on your work http://news.ycombinator.com/comments?id=17871


Yes: http://www.erikveen.dds.nl/rubyscript2exe/index.html

Next time just Google for "Ruby standalone". Saves me the trouble of doing it for you ;)


You proved my point - for me - better than I could have done so myself :)

If I have to google for it and come up with a 3rd party tool, then it isnt part of the language!

And FYI, I wasnt writing my comment in complete ignorance nor laziness. I did go to the ror site when I first heard of it here on YC. When I realized it seemed to be a scripting language with a web server, I lost interest. Offline is very important for me/juwo.


try python. well supported windowing toolkits. and it doesn't suck.


old wine in new bottles

No, it's the difference between Turing imperative (e.g. C++, Java, etc.) and Lamdba calculus (lisp, erlang, ocaml, etc.) which is significant.


but underlying it is a turing machine, right?


No, Turing and Lambda are different ways of representing the same underlying assembly code.

You're correct in that there is a direct line from the Turing imperative to the underlying assembly code, but given the choice between writing Lambda expressions or Turing expressions, why would you pick the latter?


Even the lambda expression when running on the computer, is acting out a Turing machine; head travels over symbols on a tape, reads a symbol, changes state, stops or moves...

that is what I meant by old wine in new bottles.


You're correct, unless your hardware is specifically designed for lambda calculus (like one of those old lisp machines), lambda code gets compiled into Turing instructions.

But why code in a Turing style (whether it's Java or assembly) when lambda programming is more efficient?

That's the point all the lambda folks are making.


"unless your hardware is specifically designed for lambda calculus (like one of those old lisp machines)"

No, I am talking about - at a deeper level, all computing can be reduced to a Turing machine. (Unless you are reading Roger Penrose on consciousness).

Maybe I am mistaken, I am out of touch.


to clarify:

A Turing machine can simulate a deterministic finite automaton and a non-deterministic finite automaton.

All systems are arguably either of these two. Perhaps that's why we can simulate weather, and lots of other things.

Unless you look at human consciousness - Nobelist Roger Penrose has a theory that the mind is not a computer. That it has quantum states. (his book: The Emperor's New Mind - I didnt finish it - long and hard).




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

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

Search: