Half Rant/Half Advice Request
Moderator: Moderators
Half Rant/Half Advice Request
So I would like to start developing a piece of software... among other thing it would be able to connect to RSS feeds and figure out what to do with them based on content and user preferences (RSS content has a media-file like, the link is followed and and interface to play is displayed) etc... not just that but that get's you the gist of the type of infrastructure I would need.
My problem, as has almost ALWAYS been my problem, is that while I can program (and now do so on a daily basis) the accompanying nightmare of development environments, libraries and APIs, cross platform etc pisses me off to no end...
I have no problem developing in Microsoft Visual Studio for .NET as this is a nice Open and Shut Case of "We do everything so you don't have to"... but any time I've tried SDL or wxWidgets or devCPP or other tool of that nature I just have so much other CRAP to get over before I can do anything useful I quite often just give up early on.
SO, my question is this, FIRST:
Is there a relatively easy, cross-platform development environment that makes the process of developing code that will run on Windows as Well as Linux and Mac, that exposes GUI Controls and network communication and windowing etc at the level of simplicity that MSVS does and what is it? (If it's Java, what IDE should I use?)
If not, I'll basically be building a .NET windows only or ASP.NET version as a Prototype, how likely are the code and concepts I build in that environment going to translate to a cross platform implementation? will it basically be starting from scratch again?
Also, .NET code is "Supposed" to be "Platform Independent" how likely is it that I can port to Linux and Mac using some technology like Mono?
I'm interested in using sqlLite as my backend for storing data... will this work with .NET?
Also, Also, Is there anyone out there who is pretty good at programming and has a bunch of spare time and wants to build a program for me?
My problem, as has almost ALWAYS been my problem, is that while I can program (and now do so on a daily basis) the accompanying nightmare of development environments, libraries and APIs, cross platform etc pisses me off to no end...
I have no problem developing in Microsoft Visual Studio for .NET as this is a nice Open and Shut Case of "We do everything so you don't have to"... but any time I've tried SDL or wxWidgets or devCPP or other tool of that nature I just have so much other CRAP to get over before I can do anything useful I quite often just give up early on.
SO, my question is this, FIRST:
Is there a relatively easy, cross-platform development environment that makes the process of developing code that will run on Windows as Well as Linux and Mac, that exposes GUI Controls and network communication and windowing etc at the level of simplicity that MSVS does and what is it? (If it's Java, what IDE should I use?)
If not, I'll basically be building a .NET windows only or ASP.NET version as a Prototype, how likely are the code and concepts I build in that environment going to translate to a cross platform implementation? will it basically be starting from scratch again?
Also, .NET code is "Supposed" to be "Platform Independent" how likely is it that I can port to Linux and Mac using some technology like Mono?
I'm interested in using sqlLite as my backend for storing data... will this work with .NET?
Also, Also, Is there anyone out there who is pretty good at programming and has a bunch of spare time and wants to build a program for me?
Re: Half Rant/Half Advice Request
If you want to stay in MS-land, there's C#. You have to restrict yourself to 1.1 to get reliability, and even then the more intelligent gui-stuff is gone... but if you just want to put elements on a form, it works cross-platform using Mono.
I've found cross-platform stuff is easy in Python.
I've found cross-platform stuff is easy in Python.
-
- Spring Developer
- Posts: 1254
- Joined: 24 Jun 2007, 08:34
Re: Half Rant/Half Advice Request
Qt. Imho the best way to write GUI apps.
- thesleepless
- Posts: 417
- Joined: 24 Oct 2007, 04:49
Re: Half Rant/Half Advice Request
PyQT qt with python = the best way to make cross platform gui apps IMO
Re: Half Rant/Half Advice Request
I really like .NET with C#.. If you want it cross-platform, use Mono from the beginning. SharpDevelop is a leightweight opensource alternative to Visual Studio but it does crash every now and again and the debugger can't handle cross-thread stuff well.
Mono provides tools to check a .NET application for anything not supported by Mono. You can however also use Mono on Windows and develop straight to Mono. In theory that should make sure that your application works cross-platform.
One of the major things Mono doesn't support is calling native (ie non .NET) libraries. Since I need this for my project, I didn't really test Mono but I'd guess it shouldn't be any more difficult than deving against .NET.
Mono provides tools to check a .NET application for anything not supported by Mono. You can however also use Mono on Windows and develop straight to Mono. In theory that should make sure that your application works cross-platform.
One of the major things Mono doesn't support is calling native (ie non .NET) libraries. Since I need this for my project, I didn't really test Mono but I'd guess it shouldn't be any more difficult than deving against .NET.
Re: Half Rant/Half Advice Request
Ot: what. About things like presentation foundation and mono?
Re: Half Rant/Half Advice Request
WxPython. Python is nice, simple, cross-platform, and easy, and wxpython is a very nice wx port for it, also cross-platform. WxPython also comes with this really neat tutorial app with code examples and everything else you'll need to learn the framework.
Re: Half Rant/Half Advice Request
Java + Netbeans + swing worked well for me, but there are some golden rules you must follow when using spring or you'll end up with the run of the mill buggy crappy program:
Always run GUI code on the swing event dispatch thread
SwingUtilities class + Runnable task copy paste around the relevant code works wodners. And make sure each change is in its own runnable so its in as many small pieces as possible.
If you manage this it will run fast and smoothly, no horrible burps or hiccups. You can use the nice point and click GUI editor in netbeans and all the shiny stuff with no issues.
But if you don't follow that rule
Then you get deadlocks, freezes, major slowdowns, corrupt rendering, unresponsive GUIs, undefined behaviour, race conditions, crashes that only crash the UI end etc etc. Not following this rule is the nubmer 1 reason java gets such a bad name, and its why one particular version fo AFLobby was orders of magnitude faster and stabler than the previous version
Always run GUI code on the swing event dispatch thread
SwingUtilities class + Runnable task copy paste around the relevant code works wodners. And make sure each change is in its own runnable so its in as many small pieces as possible.
If you manage this it will run fast and smoothly, no horrible burps or hiccups. You can use the nice point and click GUI editor in netbeans and all the shiny stuff with no issues.
But if you don't follow that rule
Then you get deadlocks, freezes, major slowdowns, corrupt rendering, unresponsive GUIs, undefined behaviour, race conditions, crashes that only crash the UI end etc etc. Not following this rule is the nubmer 1 reason java gets such a bad name, and its why one particular version fo AFLobby was orders of magnitude faster and stabler than the previous version
Re: Half Rant/Half Advice Request
Sorry about the off topic, but amazingly freudian :)AF wrote:Java + Netbeans + swing worked well for me, but there are some golden rules you must follow when using spring or you'll end up with the run of the mill buggy crappy program:
Re: Half Rant/Half Advice Request
Python seconded, Java a distant seconded. .NET veto'ed. .NET is not really cross platform.
Re: Half Rant/Half Advice Request
@Smoth
Mono supports only the barest 3.0/3.5 stuff. You're stuck with 2.0 mostly, and for windows.forms I've found it's buggy as hell even if you stick to 1.1 stuff.
I haven't used it personally since the TkInter days, but Python is the best platform I've used for cross-platform development. Unless you need the heavy lifting of a native or VM language, Python is quite nice.
Mono supports only the barest 3.0/3.5 stuff. You're stuck with 2.0 mostly, and for windows.forms I've found it's buggy as hell even if you stick to 1.1 stuff.
I haven't used it personally since the TkInter days, but Python is the best platform I've used for cross-platform development. Unless you need the heavy lifting of a native or VM language, Python is quite nice.
Re: Half Rant/Half Advice Request
Beherith wrote:Sorry about the off topic, but amazingly freudian :)AF wrote:Java + Netbeans + swing worked well for me, but there are some golden rules you must follow when using spring or you'll end up with the run of the mill buggy crappy program:
XD I cant believe I did that
- thesleepless
- Posts: 417
- Joined: 24 Oct 2007, 04:49
Re: Half Rant/Half Advice Request
how is it freudian?
- thesleepless
- Posts: 417
- Joined: 24 Oct 2007, 04:49
Re: Half Rant/Half Advice Request
ahh i'd only heard it used in reference to unintended sexual meanings
Re: Half Rant/Half Advice Request
MS .NET is working on linux except WPF. That is - including 3.5 stuff..
I use it regulary all the time and never run into major problems.
Just compile it in VS on windows and then simply run on linux using mono. Do not use mono to recompile it, run windows compiled code.
If you want advanced GUI features, use GTK# instead of .NET's native windows.forms.
ASP.NET is working except for some latest LINQ and AJAX related stuff.. notably LINQ data source and ajax update panel was a bit buggy last time i tried it..
But overal compatibility is very good. Most projects i make run under mono flawlesly.
For example springie, p2p downloader server or planetwars server didnt need any modifications to work on debian and ubuntu.
Planetwars site itself (ASP.NET) needed some tweaks to run under apache on debian.
I use it regulary all the time and never run into major problems.
Just compile it in VS on windows and then simply run on linux using mono. Do not use mono to recompile it, run windows compiled code.
If you want advanced GUI features, use GTK# instead of .NET's native windows.forms.
ASP.NET is working except for some latest LINQ and AJAX related stuff.. notably LINQ data source and ajax update panel was a bit buggy last time i tried it..
But overal compatibility is very good. Most projects i make run under mono flawlesly.
For example springie, p2p downloader server or planetwars server didnt need any modifications to work on debian and ubuntu.
Planetwars site itself (ASP.NET) needed some tweaks to run under apache on debian.
Re: Half Rant/Half Advice Request
I went with Windows Forms .NET (non-WPF) with a SQLite back-end, primarily for simplicities sake as I already am going to have a hard enough figuring out what I'm doing... and because a lot of what I am doing has been done, in part, already, so I can borrow other peoples stuff (like the tweatsharp and sqlite .NET libraries)...
So far I have managed a piss-poor Twitter client and then got stuck trying to figure out some logistical things on the design side... then I ran out of spare time again... maybe this weekend I'll get some more code side stuff done.
So far I have managed a piss-poor Twitter client and then got stuck trying to figure out some logistical things on the design side... then I ran out of spare time again... maybe this weekend I'll get some more code side stuff done.
Re: Half Rant/Half Advice Request
@Licho
I can't speak to the rest, but Mono's windows.forms implementation is awful.
I can't speak to the rest, but Mono's windows.forms implementation is awful.