What Language for efficient web gui?

travanx

[H]ard|Gawd
Joined
Apr 9, 2000
Messages
1,579
I have been trying to figure out how to go about writing a software in my industry that is more useful than the current choices. Yesterday it finally hit me, treat it more like a video game than a complex software. So I was curious for any tips on the language to use.

I was reading how google apps are starting to compete against Microsoft Outlook and thought why not write a software that can be used online, thus being able to share the data more easily. What I am looking to do is a drag and drop interface and while you drag and drop items around it calculates equations. In doing that each object needs to be tied together. To start out I think there would be about 5000 objects to tie together each using different rules from different equations. And if you move one thing, then other objects tied to it change.

I would also want to be able to import and export ascii at first because this will need to export to different formats and import from certain formats.

And also be able to have say 5 pages of pictures that can relate to these 5000 objects any way you want. Say a moon and sun are the objects and I want to be able to place on page 3 the moon in the upper corner and the sun in the lower corner.

Any help would be great. Its been a long long time since I have looked at code, so I am sure I am gonna have to read up quite a bit on whatever langauge.
 
What exactly is the app going to do? I'm not really making any sense from your post other than that it's a fancy web gui with drag and drop and perhaps thousands of items on a single page.

You want this to run in a browser? All that drag and drop stuff is accomplished via AJAX, You might run into performance issues depending on the javascript engine in browsers.
 
hard to explain even if i explained what i am trying to write. but you saying possible performance issues is enough to get me right there. I figured AJAX might be the thing to use. I guess its gonna be C++ then.

But yes a very fancy web gui. I figure if they can make games in there, why not useful math intensive software. was also hoping to have a server doing the computations instead of the PC.
 
I think you're confused about the various uses for the different web technologies. If I'm following you correctly, you want a web app that behaves much like Google apps do (i.e. like desktop apps).
Because of the state-less nature of web pages, if you want to manipulate the behavior of the browser UI without refreshing the page each time, then you have to use Javascript/AJAX or maybe Flash or Silverlight.

I'm not sure why you would want to write a web app in C++ when scripting languages like PHP, Ruby, ASP.NET, etc.. exist for that purpose. These scripting languages have built-in functions for database connections, form processing, file system manipulation, data validation, security, etc.

The basic foundation of just about any web app today consists of a scripting language and database for the server-side stuff (back-end), and xHTML/CSS, Javascript/AJAX for client-side presentation and UI (front-end).
 
To be more clear I was seeing if it was possible to do a web app. Since it sounds like maybe that is not the right direction, it might need to be a windows only program. I was talking with some friends last night and they mentioned C# for what I am looking to do. Are there any good forums or websites that talk about C#?
 
www.asp.net is a great place to start. Plenty of tutorials (under the Learn tab at the top) which cover vb.net and C# (articles and videos). Also, very helpful and knowledgeable people in the forums.
 
any other sites to check out? i hate to ask this, but is anyone familiar with VC for tech stuff?
 
I'm just as lost as these other guys. Why is it that you don't think video games are complex software? I can't guess what you mean by "efficiency". Are you asking about developer productivity? Memory usage? Compactness of expression? Runtime performance? For most of those answers, I think that C# is the wrong way to go.

I'm very familiar with Visual C++, but I'm not sure what you mean by "tech stuff".
 
From your vague description you'll need to do a javascript front end (to support drag and drop and such things), check out something called JSON. Server side you'll need some type of scripting engine to handle the calls from JSON, I recommend PHP because it has a lot of the functions you'll need built in.
 
Its hard to explain but there is a software called Civil 3D by autodesk. Its extremely complicated to use for no reason and doesn't work for engineering in California. I figured out how to make a better one thats much easier to use with exactly what civil engineers need. And it involves making it more like a simple videogame thats intuitive than this huge mess of code that doesn't run on any current computers and no one can figure out the software. But you wouldn't understand unless you used it in a work environment, so I kept it more just generic description. I know videogame code is complex, but the actual videogame is easy to use.
 
No, a video game isn't always easy to use. Depends on how it was developed and designed. Some video games are absolute shit for user friendly.
 
have you done any user testing? The smart thing to do would be to make a very basic mockup and do some user jury testing. Just because you think it will be sweet doesn't mean it is. Anyways if the usability testing is good then move forward, until then, chances are your idea is in the 9 out of ten that will fail.
 
Has anyone here ever used Civil 3D? I like the idea of a mockup, except that I can't program the thing. Funny how I was mainly asking about programming languages. Thanks for those who at least gave some ideas on a language, this that was the original question.
 
I've used AutoCAD, but not the Civil or Civil 3D packages. It's impossible for me to agree that the package is complicated without any reason as the product is incredibly powerful, and therefore necessarily complicated. AutoDesk has developed excellent UIs that mitigate the complexity as much as possible.

You've got a tall task ahead of you, and I think the choice of language is one of the least of your worries.
 
Civil 3d is just a complete rewrite of autocad for civil engineers. Autocad is great, and it is pretty easy to use. They are trying to push Civil 3D bigtime and most people just don't get how to use it. We had weeks of training and it didn't do any good for the majority of the company. But like I said my question was of language.

I know this is gonna be hard, but if it was easy everyone would do it.

Actually let me ask my question a different way. Besides assembly. Whats a good language to write a software with a gui? Its been about 6 years since I have seen code, and I am not up to date on what is out there.
 
Assembly is not a good way to write something with a GUI ;)
 
They are trying to push Civil 3D bigtime and most people just don't get how to use it. We had weeks of training and it didn't do any good for the majority of the company.
This sounds like a problem with your training provider. Or, like you say, if it was easy, everyone would have realized benefit.

Actually let me ask my question a different way. Besides assembly. Whats a good language to write a software with a gui? Its been about 6 years since I have seen code, and I am not up to date on what is out there.
Assembly isn't a great choice for writing large amounts of code, GUI or not. The developer productivity and maintainability problems inherent in assembly aren't overcome by the benefits it provides--and those benefits are only substantial when done very, very well, which further limit the maintainability and productivity problems.

Lots of languages are good choices for writing GUI-based software in Windows, depending on what compromises you want to make. C#, C++ (or straight C) and VB.Net are popular choices. More esoteric choices include Python and Perl/Tk. Depending on how you structure your app and what your requirements are, you might write a web-based application and use web-oriented technologies to do it. Seems writing a web-based application is the idea you had earlier on in this thread, in fact.

But let me be a little bit more specific about what I'm trying to explain. If you've not written a line of code in six years, you're really not up to this challenge. Even if you were, you've got the cart before the horse--choosing language is secondary to requirements analysis and refining the problem domain. I'm not trying to harsh your deal; I'm just trying to save you some time.
 
I'm going to agree that you're taking on a monumental task, especially for someone who hasn't coded in years. Like mikeblas said, you need to know what exactly it is you're building before you even consider programming language or technology.

Seriously, look at what you're bringing to this project: a vague idea that even you cannot fully describe, obvious lack of project management experience, and very rusty programming skills. Perhaps what you really need to do is flesh out the idea completely, then pitch the idea to a group of experienced developers to see how feasible it really is, and then perhaps get a team together to work on it.
 
I would have to agree with Mikeblas that this seems like it would be a very difficult/programming intensive project, especially for someone who is not a programmer. That being said, as far as answering your question is concerned, I would take a look at Silverlight if i were you.

I am a big promoter of it, so I may be biased, but it isn't too hard to pick up if you have any programming knowledge - its a new technology and theres tons of support articles out there. You would have your pick of any .Net language, namely C# or VB.Net. I would recommend checking out some demos on silverlight.net, theres literally TONS of videos and samples.
 
as said, i think it was your trainer, you dont think AutoDesk has some experience in this.... and you a single person want to take a product a million dollar company made and just redo it.. to do everything!!! that Civil3d could do....
 
Just as a sidenote/thought if his project is still going...

I'm writing a course scheduler / 4-year course/term planner type dealio webapp for other students at my school to use. Backend is mySQL + PHP, frontend is JavaScript via Ext JS library, and they talk to each other via JSON and HTTP POSTs respectively.

The hardest part? Getting the hang of JavaScript and the Ext library - they provide excellent excellent documentation. I was coming from a purely C/C++/C# background from Win32 API/MFC/etc. First webapp I've ever written, but thanks to magic of Google and PHP being somewhat C like, it wasn't so bad.
 
Back
Top