Temple of The Roguelike Forums
Development => Programming => Topic started by: Krice on June 09, 2017, 11:53:14 AM
-
Planning on programming a new tile editor from scratch on OSX platform (possibly portable to Windows also). Requirements:
- real language, not a scripting language like python
- not purely functional (must have mutable variables)
- library for gui development (like SDL or wxwidgets for C++)
- not xcode/swift
I have Visual Code already installed on OSX so it could be one of languages supported by it. Some kind of IDE would be a nice thing anyways.
Edit: Let's possibly make this easier and forget OSX. I just tried to use Ruby on osx and could not, because the default ruby (that ships with os) doesn't have debug "stuff" in it and you can't install it over, or should not. You need something called rbenv and looking at the installation procedure I gave up. I guess it's not that bad. Someone has done it before, right?
-
Just get Unity
Use Visual Studio
Both of those are free
-
Python is not real language, but Ruby is? It's interesting where you'd put border., and it could change answers perhaps.
As far as I know, C# have good support for creating GUI apps - and, regarding to Tzan's response, Unity works with C#.
-
"C#" didn't fit into my haiku :)
If you are just making an editor, there is no need for Unity, just use Visual Studio C#
-
As far as I know, C# have good support for creating GUI apps
Really. C#. Do I really have to use that? It's the only option?
-
Java has fx (including scene builder) and swing that are widely used, but I'm not experienced in that language at all, so just can't say more.
Why don't you want to stick with C++ with, say, QT?
-
Java has fx (including scene builder) and swing that are widely used
I hate java like anyone else.
Why don't you want to stick with C++ with, say, QT?
Weird licensing in some C++ libraries. Also C++ gui libraries are often really difficult to set up even on Windows. Notably if it requires compiling the library I give up immediately. SDL2 is really nice, but it's too simple. I wish there was something between SDL and those gigantic gui libraries that have way too many features.
-
I started a small project with C# to try if I can program a loader for tiles (wst format in Brick Atelier). After couple of days it was a success. The big difference is the way Form (window) works with events. So for example when you draw the tile you have to install "stuff" for Paint etc. events. It's kind of annoying, but necessary when working with gui parts of the program. As a language C# is quite similar to C++ (as the name tells), but it's simpler and it has similar kind of automatic value/reference system that Visual Basic has where some types are reference only and some value only.
-
Python is a real programming language. It is not a scripting language.
I'd give Nim a shot.
-
I'd give Nim a shot.
Why? It doesn't even have a compiler, it compiles to C (and some other languages) which is lame.
By the way, it's possible that C++ is the best language. If so, sad.
-
It does have a compiler - which compiles Nim to C and then invokes the system's C compiler.
Quite a few programming languages do this.
C++ is not the best programming language, and if you think it is you either -
A) Haven't been programming for long enough
or
B) Haven't been programming C++ for long enough
-
Quite a few programming languages do this.
They are all bad languages. "Compiling" to C sounds super safe, we all know C is such a great language in that.
-
It sounds like you entered this thread with your mind already set on bashing every language that isn't C++.
Guess what language C++ learned from? Never forget, from the creator of C++ himself - C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off.
I'm done feeding the troll(s).
-
It sounds like you entered this thread with your mind already set on bashing every language that isn't C++.
I wish it was that simple, but it's not. C# is not that bad, I like how they removed the need for header files, but that's a modern invention because then the IDE has to keep track of what is in the project files. I'm not sure what to think about the automatic reference/value -system and garbage collection, I guess they are ok. What I don't like about C# is that it's so closely tied to Windows programming. I wish there were a simple graphics library (like SDL) and then you could add Windows features if needed. It's possible to go around that and work with pure source code, but you still need some kind of connection to Windows app level.
As a great philosopher once said, "if there were a better way to do it, we would be all using it." Don't we all wish there was a better language than C++? I've tried to look for one, but no luck yet. I'm programming a project with C#, but those Windows parts are already somewhat annoying. There is so much you need to know if you want to set up a working piece of some control etc.
-
If you want to keep going in C#, but don't want to use the Unity engine, there are some options, for instance you could try using http://www.monogame.net/ (http://www.monogame.net/). Maybe its easier to do drawing in a game engine rather than trying to use the Windows GUI stuff directly.
-
I wanted to use C# for gui stuff mainly and I've never used Unity. I guess you could create a pseudo-UI just using plain images and stuff like that, but it would somehow feel weird. By the way, I tried XCode/Swift, but it has similar kind of "problem" with UI stuff, because you are working with default UI elements, but if there is something special you need then it's going to be harder to implement. Or maybe it's easy after all who knows, but it feels quite overwhelming.
I think it would be great to have something in between SDL2 and those complete UI systems like Windows forms or XCode. Other than crappy linux-based libraries like wxWidgets.
This turned again to UI problems, but they are one big problem in programming languages. I believe the actual success of a language depends on what kind of UI libraries you can use.
-
Try D (https://dlang.org/ (https://dlang.org/)). Among other things, it fixes a lot of the problems in c++. Things that in c++ are cludges, feel native in D. Also, it's the only language I know of that has a c++ FFI, meaning it can use (some) c++ libraries -- the FFI isn't perfect. And like all languages, it has a (perfect) CFFI so you can trivially use any C library.
Someone else mentioned nim, that's a good language too. I haven't found the fact that it compiles to c to be a problem, why would it?
-
it has a (perfect) CFFI so you can trivially use any C library.
Why would that be a good thing anyway? It's like saying the language sucks so much it needs C. Well, anyway, I have tried D. It's like C# but less modern and without Visual Studio's cool explanations for everything. D was an attempt to "fix" C++ but it doesn't really work that way. Java was also supposed to be that kind of language and it was a complete failure. Java's only legacy is that anything using Java is a huge security risk to your computer.
-
I heard of a language being developed. It's called shtpst. The syntax is identical to forum posting, including emojis, image macros and so forth. It's a very advanced, next generation programming language. The team behind it is pretty eccentric. They post a lot on programming language forums about how other programming languages are bad or sometimes they're good in the same way that shtpst is planned to be (though not as good).
Of course, as a next generation programming language, you would expect a significant amount of time in development before a release. From what I understand, the developers expect a release in about a generation, roughly 20 years.
For the purposes of a programmer like Krice, someone looking to produce a next generation computer application, I think it will be worth the wait. It just makes sense for a next generation game to be written in a next generation programming language, even if it takes a generation.
-
It just makes sense for a next generation game to be written in a next generation programming language
It is kind of funny that we still have to use programming languages that were developed mainly in 1970's when for example graphical displays were quite rare and everything was text and command line based. As in linux development style today. I really think we need something better than anything we have today, with new kind of thinking that would remove all those tedious procedures we have in programming. Most of my problems in programming are technical problems that could have been solved by using more advanced built-in algorithms than what we have.
-
> "Compiling" to C sounds super safe, we all know C is such a great language in that.
And compiling DIRECTLY TO BINARY that runs STRAIGHT ON THE CPU is SAFER?
> It is kind of funny that we still have to use programming languages that were developed mainly in 1970's when for example graphical displays were quite rare and everything was text and command line based. As in linux development style today. I really think we need something better than anything we have today, with new kind of thinking that would remove all those tedious procedures we have in programming. Most of my problems in programming are technical problems that could have been solved by using more advanced built-in algorithms than what we have
If it ain't broke, don't fix it? Can you give me something TANGIBLY wrong with all of programming, in general, today? Anyway, it sounds like you're dismissing languages for no very good reason (nim compiles to c, it must be trash, I hate java like everyone else, d fails at fixing c++, I "have" to use c#). Why don't you go and write your own programming language that completely fixes everything that's wrong with all these programming languages and is perfect and easy to work with and remakes all of modern programming first ;)
Oh, also, take a look at lisp first.
-
Can you give me something TANGIBLY wrong with all of programming, in general, today?
Lots of problems there really. A big problem that has always been there is theory vs. practice, in both programming theory and performance. For example functional model is "good" only in some cases, but still some people take it as a religion. I think multi-paradigm languages are the best ones for generic programming. C# and some other languages like it tries to fix C++, but sadly C# is closely tied to .NET. I think we need a high level language (that compiles to machine code), but something more generic still. I hope that the dialog between computer hardware and language is simplified to more abstract level so that the language doesn't need to know specific features of the hardware. This could be done possibly even without external libraries, directly in the language.
-
Elronnd, you should use the quote button in the reply box or [q u o t e] [/q u o t e] (no spaces) for a more attractive quote. The angle bracket quote thing is difficult to read.
-
Just an update, I've gone so far as started to write imaginary code with my own language! No but it's kind of fun. This far I've managed to write code that doesn't have () or {} characters, I noticed you don't really need them and without them the source code is actually more readable.
-
hi Krice, what's the ETA on Kaduria?