On 28/05/2013, at 12:57 AM, Gour wrote: > Hello! > > I'm looking for some statically typed programming language to be used for > writing multi-platform desktop application and for various reasons I want to > avoid C(++).
The desire is not surprising but the ability limited. > Tried with Haskell few years ago, but I was to steep for some potential > contributors supposed to form our team, and I can't say that I grokked monads > fully. I think this is something you can pick up with some patience. The issue with Haskell I think is that there are no shortcuts to performance. You have to understand the compiler, and even then some things like mutable arrays, the cornerstone of performance, simply aren't available in a purely functional paradigm. > > Then when wanting to re-launch the project, was considering D, but it looks > that > the language is not very stable and in constant flux. Really? D has been around a while. My problem with it is that you just don't get enough back for giving up the primary advantages of C++: popularity and Standardisation: D is good but not good enough. IMHO of course. > Moreover, there are only GtkD bindings maintained by single person. > > Recently, considered to use Ada which has both Qt & Gtk bindings, but the > language seems to be quite big, although it is still potential candidate. But Ada is standardised, and there are very high performance compilers. In fact my tests show Ada often beats C. The problem with Ada is that it is too old. It lacks modern polymorphism etc. > Ada evaluation has brought me to Nimrod which looks as nice language with > clean > syntax, but after more consideration, I tend to prefer using Qt over GTK+ > seeing > that the latter project is not in a best shape in regard to the number of devs > working on non-Linux ports (Win & Mac OS), so I postponed idea to use Nimrod. Nimrod looks good in principle, but the implementation doesn't appear to live up to the design yet. Eg the GC doesn't actually work. > When I asked about it in #nimrod, they reply was that Nimrod is further > developed with better GC. Lol. Felix is WAY ahead of Nimrod. Its been around for 15 years at least. And the Felix GC actually works. Although it isn't fast. And I have no idea how Nimrod devs got any ideas about Felix since to learn about it you have to join the mailing list -- and I'd notice. Good docs are one thing Felix does NOT have. > > Browsing the mailing list archive I spotted the John's "status" message > conveying: "...doing a lot of work upgrading Felix to an enterprise level > system", so wonder whether Felix is ready for production? It's been working and useful for years. However based on the number of users its hard to claim robust testing which only a significant user base can bring. Upgrading to enterprise level basically means an admin can upgrade the sources on a server everyone shares, but each user has access to a platform specific build of the binaries. > What about writing multi-platform GUI app using Qt? I do not recall seeing any > news in regards. While discussing about Qt bindings for Rust, devs told me > that > "it's feasible" (by using SMOKE), but that's probably far from today's focus. Felix can bind to C and C++ libraries. Executable glue logic is usually not required, however you DO have to provide "type glue". However if I recal Qt uses an archaic extension to an archaic version of C++ and so requires a special preprocessor. Felix could probably be modified to handle this "as if" it were an alternate compiler. I am not going to write a Qt binding, or a binding for ANY large library. However I will support any such effort, modifying the compiler if required to ensure it can be done relatively easily. A lot of stuff can be done by extending the syntax, and that does not require changing the compiler because the grammar is part of the library, i.e. its in user space. > Let me say that besides need for Qt bindings, I also have to call (and provide > bindings) 3rd party C library doing some number crunching, but I noticed there > is c2felix generator. Not any more. > Moreover, I'd like to have good build system to provide differen builds, as > well > as to generate user docs (probably via reST/Sphinx) in HTML/PDF. Is Fbuild > ready > for it? (btw, nice blog post about build systems). I am phasing out fbuild. At this time, you need fbuild to build Felix first, then you use the result to rebuild it using Felix. Fbuild is very good, but the author Erick Tryselaar is no longer with this project and I just don't have time to figure out how to maintain a major program written in a dynamically typed language. *However* I suspect that's not what you're asking. If you're asking about building Felix programs the answer is simple. You don't. Its all completely automatic. Just execute the sources. Felix compiles stuff (with dependency checking and caching behind the scenes. Just pretend its like Python or Perl only it compiles down to machine code instead of byte code. You CAN build entities directly, eg executables or libraries. Its just a couple of switches on the "flx" command line which basically just stop "flx" running the results automatically. I plan to extend these capabilities to C++ as well i.e. flx will build C++ right now, however it can't dependency check automatically. As to end user docs: you can either write a document processor to do the job you want, or you can use the webserver and make a plugin that does what you need. The webserver generates HTML for various formats "on the fly". No separate document generation run is required. There are a few special tools, for example a library documenter that parses function definitions and grabs related comments to form an index or table of contents. Its fairly basic. -- john skaller skal...@users.sourceforge.net http://felix-lang.org ------------------------------------------------------------------------------ Try New Relic Now & We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, & servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language