Visage-Based Language as a general purpose lang

39 views
Skip to first unread message

Vladimir Vivien

unread,
Jun 21, 2012, 9:53:18 AM6/21/12
to visag...@googlegroups.com
I work with JavaFX Script (1.2, 1.3) and even wrote a book about it.
I always wonder if I am the only one who thinks JavaFX Script would be an awesome general purpose funtional language (not tied to UI)?
JavaFX Script offered many functional programming features (closures, list manipulations, functors, etc).  =

I like the effort of Visage of carrying on with the JavaFX Script forward.
In that same spirit, what would it take to create a similar effort for a general purpose language based on JavaFX Script?
Think of it, all the syntactical sugar of Visage for general-purpose programming including the functional candies.
Legal concerns notwithstanding, would Visage be a good starting place?

Just thinking out loud.

Robert Casey

unread,
Jun 21, 2012, 11:51:03 AM6/21/12
to visag...@googlegroups.com

I would agree with you, Vladimir, that the JavaFX scripting language
is an effective expressive language in its own right. Taking the GUI
elements out of it, there are still very powerful elements in it that
simply need to be expounded on to make it a standalone language. I am
currently working with Python because of a similar level of
expressiveness, but I also know there are other developers that
particularly like Scala for similar reasons.

To make it completely standalone, it would need to offer its own
complete library implementation. It's currently very dependent on the
Java API and the JVM. If it could have a compilable library with wide
native platform support, then it would be a nice option for developers
to consider. If it were a compilable language, and not just an
interpreted language, even better.

-Rob

William Antônio Siqueira

unread,
Jun 21, 2012, 12:19:03 PM6/21/12
to visag...@googlegroups.com
I don't completely agree, but I think Visage would include a few more features to help in the UI creation.

For example, I miss a high level way to consume REST Services. The HTTP classes from JavaFX Script would be a great start.

Alain Béarez

unread,
Jun 21, 2012, 3:11:02 PM6/21/12
to visag...@googlegroups.com
Visage might be superseded by ScalaFX when considering its role as a language for the desktop UI programming.

However, I have been using successfully Visage to develop an Android application where I used the Restlet framework to make my Android devices run as HTTP servers (quite unusual as architecture but perfectly feasible when using a WiFi connection) as well as clients. It was a very positive experience both for its capacity in handling the visual interface and its capacity to interact with the Restlet framework to handle the network communications.

I would expect the compiler to produce a more optimized code for such a scenario. 

But I can't help thinking about the future of the tablet world with JavaFX running upon JavaSE embedded for Linux on ARM architectures:
https://blogs.oracle.com/oslab/entry/who_thinks_a_linux_arm

-- 
Alain Fagot Béarez
http://cua.li/TI

Nick Apperley

unread,
Jun 21, 2012, 7:08:51 PM6/21/12
to visag...@googlegroups.com
Completely disagree with Visage being an interpreted language. Visage is a compiled language that has some features that make it behave/look as though it is an interpreted language (eg type inference). Even though Visage gains a lot of its heritage from JavaFX Script it is heading out into new directions outside of what JavaFX Script was designed for (eg Visage and Valadin development).

Interesting that you mention about libraries as I was developing a sample application with Visage one day and discovered that the required libraries (all or part) were being compiled into the application (no additional baggage), only a single JAR. This is unlike a Scala app where additional libraries have to be bundled with the app as separate JARs, which doesn't make Scala a good candidate for developing Android applications for instance (generated application is far too big).

When you develop an Android application you have to be mindful of the fact that the target devices have limited resources available (eg limited memory, storage, CPU, and battery life). Android is an area that Visage really needs to get into as I think that would be a great alternative to Java for the following reasons:

  1. Can easily do quick prototyping
  2. Try out Android features quickly and easily without much effort
  3. More productive/rapid development
  4. Produced applications are smaller in size
  5. Easier maintenance

The reasons mentioned above could easily apply to any other development that might be done using Visage as a general purpose language. Much work needs to be done to have Visage go beyond just being a language solely designed for creating GUI applications (frontend).

Nick Apperley

unread,
Jun 21, 2012, 7:12:14 PM6/21/12
to visag...@googlegroups.com
Point 2 should be Try out platform features quickly and easily without much effort instead of Try out Android features quickly and easily without much effort.

Nick Apperley

unread,
Jun 21, 2012, 7:22:33 PM6/21/12
to visag...@googlegroups.com
Somehow I don't think that Scala will supersede Visage somehow. Scala has become too complex for newcomers to get into, and it has become overkill in terms of its features for frontend development. Visage already has a head start with being designed for creating GUI applications. Scala has to do it with add-on libraries. It is important to remember that Scala like Java was originally designed as a language for creating backend applications, and as such it is better suited for creating applications in that area. 

Sure Scala is more suitable in some ways for developing a GUI application than Java but it is a more complex language than Java when you think about it. Also Scala doesn't have major commercial backing at the moment. If Visage could get some major commercial backing before Scala then it would have a major edge, at least with the rate of language development and tooling support.

William Antônio Siqueira

unread,
Jun 21, 2012, 7:36:56 PM6/21/12
to visag...@googlegroups.com
I agree with Nick.

Visage is, in fact, to create UI. I feel good creating UIs with Visage.

Scala is adapted to create UI, it means that it can be similar to a DSL for UI but never will be it.

I can't remember how it started, but the idea of using Visage for creating UI to various platform is indeed brilliant. We should focus in always make the UI development easy in an homogeneous way. I mean, doesn't matter if you are creating applications for mobile, desktop, television, web it will be always an UI, so, how can we merge the developments to these platforms? I want to do UI without caring of what UI it is, I should not have the concern of what language use Mobile or for Desktop, I should simply think how can I make this UI attractive. I believe Visage is the answer.

2012/6/21 Nick Apperley <napp...@gmail.com>
major

Vladimir Vivien

unread,
Jun 22, 2012, 10:49:30 AM6/22/12
to visag...@googlegroups.com
Rob,
I was thinking of a jvm-based language with root from JavaFX-script (similar to visage).
However, instead of deep tie to UI construct, give it generic constructs to make it lighter and more general-purposed.
I understand Scala can be a bit much for the uninitiated, Groovy can be too java-like sometimes. 
The expressiveness of JavaFX-Script-based language would be in the middle. 

My 2¢.

Eric Smith

unread,
Jun 24, 2012, 11:25:57 PM6/24/12
to visag...@googlegroups.com
Check out Stephen Chin's starting work on this at https://code.google.com/p/visage/source/checkout?repo=android.  He put together a few demos and some classes which he's taught both here in the states, and in a couple of other countries as well.

Eric Smith

unread,
Jun 24, 2012, 11:26:37 PM6/24/12
to visag...@googlegroups.com
Should have mentioned that was for the concept on Android development... 
Reply all
Reply to author
Forward
0 new messages