16

I have to write a web application, and I am not sure which technology to choose. The user interface has to look like a desktop application. From my (limited) experience with HTML, CSS and JavaScript, I know this is far from easy. What I'd like is to be able to program just like in C++, C# or Java, because I think these languages are far more suited for implementing a GUI.

My question is threefold:

  • Is this possible?
  • Which technologies can be used for this?
  • And if it is possible, why are most web applications still made using HTML and JavaScript?

Update: Thanks for the many responses!

Dimitri C.
  • 21,861
  • 21
  • 85
  • 101
  • Possible duplicate of [Porting c++ code (native client) to browser (Web app)](https://stackoverflow.com/questions/41083606/porting-c-code-native-client-to-browser-web-app) – Boghyon Hoffmann Mar 28 '19 at 15:10
  • This might be helpful: https://youtu.be/BnYq7JapeDA?t=1510 (Overview of how AutoCAD leveraged WebAssembly) – Boghyon Hoffmann Mar 28 '19 at 15:20

17 Answers17

9

Yes, it is possible you could use Silverlight or JavaFX (even though it would require a minimum of HTML like 4 tags...).

The problem with Silverlight or JavaFX and Flash at the same time is that they suck at SEO, that is search engine optimization, as Google & co can't look inside your app.

Gab Royer
  • 9,587
  • 8
  • 40
  • 58
  • I'm surprised I'm the only one to mention it! As much as I dislike JavaFX apps, it is a valid and well established alternative to Flash and Silverlight. – Gab Royer Jul 01 '09 at 14:46
  • Google (don't know about other search engines) can look inside Flash just fine if you tell Flash/Flex/whatever to produce 'accessible SWFs'. – Noah Medling Jul 02 '09 at 22:52
9

You can use Python with Pyjamas, Objective-J (and a little JavaScript) with Cappuccino, or Java with GWT.

If you don't mind being reliant on browser plugins, you can also look at Adobe Air, Adobe Flex, Flash, Silverlight, or JavaFX (or just plain Java).

To answer your other question, most web apps are written in HTML/CSS/JS because those are what most browsers can run without help. Everything I mentioned above either compiles to those or relies on the user having a plugin installed.

Noah Medling
  • 4,581
  • 1
  • 23
  • 18
6

A few points:

It's impossible to have a web page without HTML.

If you use plugins like Flash as others have suggested you still need HTML, because that's the language of the web. HTML, CSS and Javascript are used widely because plugins are mostly proprietry and not understood by the browser.

For example you can't normally copy-paste text easily from plugins, and other browser functions and shortcuts don't work. You will have to weigh up what is more important.

If your app must look like a desktop application, make it a desktop application

Why not make a desktop app, with internet connection capabilities? It's kind of deceiving making it look like something it's not, and also weird when it's running within another app (the browser).

And whatever style you use, it still won't look like the user's OS in most cases. Every OS is different, and each one allows much customisation. You can use a cross-platform framework to remove or reduce these issues.

DisgruntledGoat
  • 70,219
  • 68
  • 205
  • 290
  • "Why not make a desktop app": We already have got a desktop client for our server, but our sales department now thinks web-apps are the way to go :-( – Dimitri C. Jul 07 '09 at 07:02
  • Then you need to explain to them the pros and cons of each approach and how each is suited to your project. If a web app *is* more appropriate, I'd recommend keeping it "open" and accessible by using HTML over plugins, and making it work like a web app, not a desktop app. – DisgruntledGoat Jul 07 '09 at 11:39
4

I'm not convinced that looking like a desktop application is the key to success - and what does that really mean anyway?

Jquery UI gives you an idea of what is possible using the standard html/css/js combo, and is easy to implement.

Rich Bradshaw
  • 71,795
  • 44
  • 182
  • 241
3

Most web applications are made with HTML and JavaScript for portability. But, if you want a really "rich" user interface, you might want to investigate Adobe Flash or Flex, or Microsoft Silverlight (with which you can program in C#). But, you will be requiring your users to have the appropriate plugin.

Chris W. Rea
  • 5,430
  • 41
  • 58
3

You can use Flex, Silverlight or Flash to create rich interfaces.

If you don't like HTML and CSS, you can use CSS frameworks like blueprint, HAML, SASS. If you don't like javascript, you can improve the experience using jquery or prototype.

Using HTML gets you more visibility. For instance a lot of portable devices don't handle Flash, and most of the people don't have Silverlight. There are also SEO issues. Even if Google is now referencing flash content, it's still way behind HTML referencement.

Finally, to me a web application shouldn't look like a desktop application. But if you really want to do so, there are way to do it:

alt text
(source: cappuccino.org)

(cappuccino)

Glorfindel
  • 21,988
  • 13
  • 81
  • 109
marcgg
  • 65,020
  • 52
  • 178
  • 231
  • "a web application shouldn't look like a desktop application". I certainly agree. However, within my company they want to port our C++ application to a web app, so I think they'll want to see *all* functionality ported :( – Dimitri C. Jul 01 '09 at 14:59
2

A good alternative is Vaadin. You can code web applications using Java (or any language for the JVM) without having to write HTML or JavaScript (but it's available when needed).

Alejandro Duarte
  • 1,365
  • 8
  • 15
1

Silverlight seems like it would be closest to what you're talking about (C#, etc)

You could also use Flash for rich internet applications.

Honestly though, you SHOULD learn at least basic HTML before you start web programming. You should learn much more than that, but at a minimum.

And to answer your last question, why people still use HTML...

Not everyone using the web is at a moderately powerful desktop computer. People access the web from phones, computer programs, etc. Not all these devices support RIA and so you're left with either leaving them out or putting things in a medium that everyone can see.

Additionally, accessability (blind people, for example) require screen readers to help them on the web. Because of this, the ability to read a document to a user is imperative.

There are certainly more reasons, but those are a couple examples.

hugoware
  • 35,731
  • 24
  • 60
  • 70
1
  • Yes
  • Silverlight/Flash/etc
  • Lots of reasons: accessibility, SEO, portability
Matthew Groves
  • 25,181
  • 9
  • 71
  • 121
1

As I've seen the syntax used in Java FX, I think you would be better off with a regular Java Applet (being a bit subjective with good reason). An Applet is a Java application (with certain restrictions) embedded in the browser.

The reason that HTML/CSS/Javascript are used for web pages is because that's what they're intended for. They let you construct documents that are searchable and flexible regarding layout e.g. Putting a Java Applet (for example) in the browser restricts you when it comes to appearance, styling, SEO (as mentioned) +++...

Silverlight is also an alternative, as suggested. That is also an embedded application running in the browser.

If you master Java, an applet would be a decent choice if you can live with these downsides.

Yngve Sneen Lindal
  • 1,013
  • 3
  • 12
  • 24
1

Take a look at Wicket. You can build a web app with it coding only in Java in a very similar way you make desktop apps with Swing.

EDITED: Ok, I have to admit, you need a little HTML experience (which you do have), but Wicket does the most of the tricky JavaScript and AJAX stuff for you.

Also GWT is somewhat similar: it automatically translates Java code to JavaScript and generates most of the HTML for you.

Ilya Boyandin
  • 3,069
  • 25
  • 23
1

May be late to to answer but Elm UI might be a good possibility. Elm is used for making web application. Elm ui is is a complete alternative to HTML and CSS.

A good reference is here

Ccr
  • 686
  • 7
  • 25
0

Script# is pretty nice for C# web development.

Nosredna
  • 83,000
  • 15
  • 95
  • 122
0

you may try to use Intraweb http://en.wikipedia.org/wiki/Intraweb http://www.atozed.com/intraweb/index.en.aspx

no js knowledge needed - write in pure Delphi pascal.

Or if you prefer freeware solution then Morfik http://morfik.com/ It has versions for FreePascal, C#, and VisualBasic

Inky
  • 1
  • 1
0

You can have a try with ZK(http://www.zkoss.org/zkdem) a powerful RIA framework,

With this cool framework,you can build your ajax app fully by Java and xml .

李英权
  • 31
  • 1
0

Visual WebGUI

http://www.gizmox.com

You can program just as if you were building a desktop WinForms app in C#, VB.Net or your choice of .Net Programming language. Full WYSIWYG form designers just like WinForms. No HTML, Javascript or CSS skills are needed, unless you want to customize the out of the box controls. However this is not really needed if you just want a WinForms style application, as Visual WebGUI already supports most of the WinForms controls as you might find in Visual Studio. They just implement all the WinForms style controls to render all the client part in the web browser. There are some slight differences in how you handle modal dialogs or messageboxes as you would normally in WinForms, but other than that it is just like coding a WinForms application.

0

Server side? use Haskell. for example http://mflowdemo.herokuapp.com/

Client side? Use Haskell:

https://www.airpair.com/haskell/posts/haskell-tutorial-introduction-to-web-apps

agocorona
  • 166
  • 1
  • 5