Windows GUI apps: Rebol/SDK vs. Visual C++ 2003
[1/16] from: jjmmes::yahoo::es at: 24-Jan-2003 13:59
Hi,
I am considering writing some Windows GUI apps for
profit and would like to get input from you on which
platform is best for the job.
My initial comparison is based on
1.- ease of development
2.- licensing and components
3.- reliability and performance
1.- I am a mostly scripting developer who has recently
started learning C++ . To my astonishment, I found
that for Core tasks, C++ & STL is not really that
difficult but my interest is in the GUI side so I
should really be comparing Visual C++ (which I haven't
used before) to View and the SDK.
This is where your input would be great ! I have not
signed up for the SDK (although was thinking about it
a lot) so I do not have all the info to be fair to
Rebol/SDK.
For the other 2 comparisons I find that the new Visual
C++ beats Rebol/View and the SDK. A summary of my
reasoning is included below.
2.- C++ compiler sells for $109 vs SDK for $249 (I
think I won't need to be part of MSDN because there is
plenty of info available in the web).
The most important point is that there are no strings
attached to C++ apps that I build vs Rebol cumbersome
licensing ($500 + 10% of sales above $5000)
Components: the 2003 C++ includes a forms designer
with all the std widgets (trees, ..). Although you
could have something like this in Rebol/SDK, I haven't
seen it ! I assume using the components is more work
in C++ but at least the basic ones are available and
with no licensing.
Third party components: I like Rebol's PDF/Maker but
licensing and future development are not clear. Really
don't like having to pay for third party quality
components but there is very little Windows quality
stuff in the public domain and GNU doesn't cut it
(because you can not sell a traditional product with
it).
3.- Based on my experience, I tend to build more
quality code when it's compiled (vs interpreted) and
the performance is normally better (when compiled)
although I do not think this is a big issue on today's
client machines.
I see many of you are focusing on Rebol Windows GUI
apps (James Marsden's IDE, 3flex, Ashley's apps, RFM,
..) and would like to understand what is the best
choice and why did you choose Rebol/SDK (especially in
for profit projects).
Thanks and regards,
Jose
___________________________________________________
Yahoo! Móviles
Personaliza tu móvil con tu logo y melodía favorito
en http://moviles.yahoo.es
[2/16] from: petr:krenzelok:trz:cz at: 24-Jan-2003 14:50
Hi Jose,
as for me, my reasons are clear enough:
pros:
1) I am not fluent with C++
2) We used here Visual Objects from Computer Associates. It has really
strong object orientation, but to be fluent with the language, you
really need to understand its component inheritance mechanism etc. If
you switch to Delphi for e.g., you learn different model etc etc.
3) With View you learn once and it is cross-platform (although
cros-platformity of rebol is shrinking with latest releases) ...
4) View is cool engine to work with - VID is so cool - you are free from
all that overbloated complex crap ...
5) New styles you miss can be produced, I think we are not all that far
away ... tree-view, tab-view, menu, context-menu ... all done, although
not released ... what you could miss especially with data app is more
advanced grid style, but I am sure it can be done. As for IDE, contact
Ammon to give you some info about RIDE, - I am not part of his beta
group so I don't know anything concrete ...
cons:
1) as you mentioned, it can be lack of buy-once, distribute anywhere. I
will sign with RT, as I don't want to touch anything different than
Rebol, but for some ppl it can be a stopper
2) lack of some View capabilities:
- direct printing
- more than one text style per face (color-text)
- proper keyboard handler
- antialiased fonts
- Unicode
3) View + Core - lack of speed in some specific task - not suitable for
number crunching, fast gfx effects, - forget multimedia with rebol ....
you can help yourself with external libraries, but you will be
responsible to port it to other platforms of your usage ...
All we know is - RT wants to adress those issues, but we don't know the
priority list though, nor do we know the capabilities they want to
add/change in rebol kernels. So, you have to decide also upon what kind
of apps you want to develop - general gui apps are OK, any kind of
specific multimedia-related app is not currently possible ....
-pekr-
[3/16] from: greggirwin:mindspring at: 24-Jan-2003 12:41
Hi Jose,
j> I am considering writing some Windows GUI apps for
j> profit and would like to get input from you on which
j> platform is best for the job.
The best tool for the job will depend on the product you're developing,
its target market, and other factors; e.g. what features you need, are
existing third party tools available (or needed), do you want or need
to be cross platform, if working with other developers, what skill-set
do they have, etc.
I moved to REBOL from VB, so that's where I'm coming from.
j> 1.- I am a mostly scripting developer who has recently
j> started learning C++ . To my astonishment, I found
j> that for Core tasks, C++ & STL is not really that
j> difficult but my interest is in the GUI side so I
j> should really be comparing Visual C++ (which I haven't
j> used before) to View and the SDK.
You need to look at what it will take to build the app you want. BASIC
is easy to grasp. VB was easy for me because I did it for 11 years,
but people new to VB found some things very hard. Windows development,
in general, has added so much complexity that the core language you
use is only a small part of things now (in some cases). Whether your
ease with the kernel of C++ will translate into a larger context, I
can't say for you. If you're doing Windows, have you also considered
C#?
Don't forget little things like deployment either. What will it take
to build an installer, how sensitive is it to different versions of
Windows or your target OS, etc.?
j> 2.- C++ compiler sells for $109 vs SDK for $249 (I
j> think I won't need to be part of MSDN because there is
j> plenty of info available in the web).
If you're selling a commercial product, the small difference in
up-front costs shouldn't be much of an issue. If it is, use the free
versions of REBOL to build your app and test the waters (i.e.
controlled demos so you aren't giving away source). If you go to
Visual C++, you may find that your first add-on tool costs more than
either of them.
j> The most important point is that there are no strings
j> attached to C++ apps that I build vs Rebol cumbersome
j> licensing ($500 + 10% of sales above $5000)
This is a mind-set issue. I've had it too. RT is very easy to work
with (IMO) so, if you write a wildly successful application, you could
always talk with them about a custom licensing arrangement. If the
app is so popular, and you can't work something out with them, you
could always rewrite it in C++. You have to decide if it's going to be
a show-stopper for you. It isn't for me.
j> Components: the 2003 C++ includes a forms designer
j> with all the std widgets (trees, ..). Although you
j> could have something like this in Rebol/SDK, I haven't
j> seen it ! I assume using the components is more work
j> in C++ but at least the basic ones are available and
j> with no licensing.
No forms designer in the SDK, sorry. Coming from VB, I should be
screaming for this kind of thing, but I'm not. :) REBOL does things
differently, to be sure, and there are things I've done in VB I would
have a hard time doing with VID. OTOH, there are things I've done with
VID that would have been a *lot* more work with VB. VID doesn't work
exactly like native Windows stuff, so there's that to consider. It's
cross plaform though which, if you try to do that with C++, will
probably be a lot more effort.
j> Third party components: I like Rebol's PDF/Maker but
j> licensing and future development are not clear. Really
j> don't like having to pay for third party quality
j> components but there is very little Windows quality
j> stuff in the public domain and GNU doesn't cut it
j> (because you can not sell a traditional product with
j> it).
Yes, with ActiveX tools, you'll pay for all of them pretty much.
Again, it depends on your needs. If you need PDF output, how would you
do it from C++? The REBOL community is small enough (right now), that
you can contact and negotiate with the authors of these tools. Yes,
that's more work, but it's doable. It's just a different world.
j> 3.- Based on my experience, I tend to build more
j> quality code when it's compiled (vs interpreted) and
j> the performance is normally better (when compiled)
j> although I do not think this is a big issue on today's
j> client machines.
Once again, how much performance do you need and, as for quality,
that's entirely up to you. My development style is completely
different in REBOL than VB, and is evolving daily. Reliability also
doesn't stop with you. Your app is only as reliable as the weakest
link in the chain of tools used to build it.
Ultimately, you need to analyze your needs for each particular project
and match them to the tools you have available.
Best of luck!
-- Gregg
[4/16] from: tim:johnsons-web at: 24-Jan-2003 11:32
* Gregg Irwin <[greggirwin--mindspring--com]> [030124 10:59]:
> Hi Jose,
>
> j> I am considering writing some Windows GUI apps for
> j> profit and would like to get input from you on which
> j> platform is best for the job.
>
Let me add my perspective to Gregg's with a couple of
twists:
I came from the windows environment with a little *VBA*
(as opposed to VB) and a lot of Borland C++. My last
work in a strictly Microsoft environment was with C++
Builder, which is at least as proprietory as Visual C++,
IMHO. I do primarily web programming these days with rebol,
but we do have some desktop gui requirements, and my partner
whose name is Greg (with 1 'g') is primarily a perl programmer.
It is our policy to avoid windows-specific programming.
We charge a premium for anything windows specific.
Example: rebol,perl,python and Tcl/Tk all offer gui solutions
that are easily cross-platform. Perl and python have similar
interfaces to the Tk environment.
This approach allows me to build and test in the linux environment,
test and deploy in the windows environment on the same machine
at the same time - no rebooting or switching computers.
I recently rebuilt one of my major services (winemarketjournal.com)
I transitioned from C++ with compiled-in database services to
rebol using Mysql via a TCP/IP connection. You might expect the
earlier approach (given C++ performance edge and the compiled
DB modules) to be faster.
The answer is no. The rebol to mysql connection is faster, because
I'm using rebol to drive the Mysql monitor via DocKimbel's mysqlprotocol.
Maintenance and turnaround is faster and easier too. Really a
marriage made in heaven!
Now, if a client request a desktop/gui service, and if it were
a small one, I'd just do it in python using TkInter (the python
interface to TK, and perl has a similar on)
However, if it looked as if we would be doing a *lot* of windows-based
(or *nix-based) GUI programming, we would probably build a "GUI monitor",
using Python or Perl or TCL and "drive" it via tcp/ip in a similar
approach to Mysqlprotocol I mentioned above.
In my case, I have to accomodate a valued partner and gifted
programmer that loves perl. That would be our workaround. Given
the it is implementable, which I'm sure it is...
--
Tim Johnson <[tim--johnsons-web--com]>
http://www.alaska-internet-solutions.com
http://www.johnsons-web.com
[5/16] from: jjmmes:y:ahoo:es at: 24-Jan-2003 22:21
Petr, Gregg, Tim, thanks for your input. Here is some
more info to understand my POV.
First, let me say I like everything REBOL but I am
looking at this from a combined business + technical
focus. Also I've spent about 1 year developing in
Rebol and suddenly dig into C++ and like it a lot.
Actually, REBOL has been a great training language to
help me look into C++ with a broad set of
requirements.
I think it's hard to have an opinion on something that
you don't know much about it. This was the case I had
with C++, seen lots of criticism, complex, etc... but
once I started looking into it I liked it even more
than any scripting language, and found it's the
current language to beat for any serious app, either
client or server.
My requirements are:
MUST HAVE:
Client requirements
===================
* Basic GUI, gfx and networking
* Platform that allows me to evolve the technology in
any direction required - this is key if you want to be
in the business long term
* Good licensing terms and low cost of development
* Some critical mass of developers
* Compliance to broadly accepted standards
* Solid intellectual framework
Server requirements
===================
Everything built with GNU C++ and Linux (no doubts
about this !)
NICE TO HAVE:
* Cross-platform, eventually a must have
I started looking at the nice to have first and found
some C++ cross-platform GUI libraries (wxWindows and
ezWindows) but was not strongly compelled to use them.
This is clearly the requirement that would drive me to
REBOL/SDK, but right now this is a nice to have
requirement.
I first want to clarify that I do not mean any of this
as a criticism to REBOL, which I really like, but
stating this beforehand will help me be real candid
about the situation I face (I would summarize the
situation I face as: entrepreneur trying to make a
technical choice to build a business long term, not
necessarily a sw business).
* Basic GUI, gfx and networking
===============================
Here I am looking at a language that lets me do
anything I want, it's well documented and powerful. I
think lots of languages have this nowadays ! More than
anything I want a tool that I am not stuck with and
that eventually I can code what I want if it's very
expensive to buy or is not available.
I think my whole point of view about languages changed
when I read one Stepanov's interview in the web (C++
STL library inventor, or one of the inventors). He
talks about STL and mentions MOP languages (Money
Oriented Languages) and what limitations those
lenguages entail. Well, you can think of well known
MOP languages: Java, VB, C#, .. and although I am
trying to make a money-oriented decision for a
technical business, I am certainly driven away from
any of those languages.
Platform that allows me to evolve the technology in
any
=======================================================
direction required
==================
No MOP language allows you to evolve the technology
beyond the basic stuff because it's not good for the
owners of the language. C++ complies to an ISO
standard
for the most basic stuff but everything else is open
to lots of people who are building all types of
serious libraries.
When I first run into rebol i thought command (with
library access) would let me evolve into anything i
wanted and keep rebol as the glue. Once I found how
unimportant that was to rebol i was compelled to look
into c and c++.
Are you interested in a particular subject, e.g.
finite-state machines, google and you'll find serious
c++ libraries for it. Math requirements, the same ...
Good licensing terms and low cost of development
================================================
I really want simplicity, ease of use, low cost of
development, .. bla, bla.. but in the end only NM
languages (non MOP) can really get there because with
MOP you will be stuck with all types of business
problems or decisions that hamper what you can do.
Not sure whether Rebol is MOP or non MOP !
Some critical mass of developers
================================
Rebol's community is the best there is, or the best I
found, but would like to hear from people that are
really facing the situation I do. Again, rebol might
be the best from an academic or IT standpoint but I am
only looking at it from a "for profit" sw developer
standpoint.
Compliance to broadly accepted standards
========================================
You might argue that if something is really good who
cares about standards, but standards are very powerful
when they exist. How else can you explain M$ VC7
compiler suddenly being very compliant to C++ std when
VC6 wasn't !
O'reilly: what's new in VC++ 7
http://www.ondotnet.com/pub/a/dotnet/2002/11/18/everettcpp.html
There is no cross-platform gui standard, if there was,
I would use it right away, but when you're trying to
make money you have to be pragmatic on this.
Why nobody has built a good cross platform library
(maybe I am not aware) that lets you build a great
looking app in Linux and run it in windows and not be
able to distinguish it from a VC or VB app ? Maybe
rebol will be that, maybe java, maybe stg else !
Solid intellectual framework
============================
I am an electrical engineer but have a biz background.
Started developing 2 years ago, 10 years after
graduating. I'm spending tons of time trying to
understand what is best from a technical standpoint.
After looking at any scripting language I heard of, I
ran into rebol and fell in love. I feel the crush is
gone now, specially after I read tons of research
papers and look at modern c++ design books.
I think it all depends what tool you need, you all
said that. I summarize the requirements as 1) easy to
use client apps and 2) scalable server apps.
I've come to the conclusion that rebol is good as glue
on the server side but not much else (except small
easy to maintain websites -if you build the tools for
it).
On the client side, I am still quite confused, so
thanks for your ideas and comments.
Regards
jose
___________________________________________________
Yahoo! Móviles
Personaliza tu móvil con tu logo y melodía favorito
en http://moviles.yahoo.es
[6/16] from: greggirwin:mindspring at: 24-Jan-2003 16:34
Hi Jose,
j> First, let me say I like everything REBOL but I am
j> looking at this from a combined business + technical
j> focus.
Me too. Commercial applications are my target. Some in-house stuff for
clients as well, to be sure.
j> I think it's hard to have an opinion on something that
j> you don't know much about it. This was the case I had
j> with C++, seen lots of criticism, complex, etc... but
j> once I started looking into it I liked it even more
j> than any scripting language, and found it's the
j> current language to beat for any serious app, either
j> client or server.
What you like is very important (at least to me). Different langugages
resonate with different minds. I've only been developing software for
about 14 years now, so I'm not a real old timer, but I've looked at a
lot of langauges over that time. I try to match tools to needs. If I'm
going to specialize (and I do), I pick a tool that will be as
generally applicable as possible, and have a plan for how to augment
it, or know when to direct people somewhere else. I've only been
REBOLing for a year and a half now.
Also, it's sometimes hard to delineate between what a "language"
supports, and what toolkits are available for it, not that it often
matters except for the sake of argument.
When you say "low cost of development", do you mean the cost of the
actual tools, the cost of your time in developing the products, or a
combination of the two? Just something to think about. When VB came
out, and for a good while after, when I'd propose it as a solution,
people would say "But C is 15-200% faster than VB!"; I'd reply that VB
was actually much *faster* than an equivalent C app - usually 6-12
months faster. :)
j> Are you interested in a particular subject, e.g.
j> finite-state machines, google and you'll find serious
j> c++ libraries for it. Math requirements, the same ...
Yes indeed (and FSMs are near and dear to my heart). For me, as good
as REBOL is when compared to other languages directly (i.e. how we use
other them today), that's just icing on the cake. The *real* cake for
me is how REBOL allows me to think and how I'll build software with it
when I really start to "get it". My FSM engine was one of the things
that started to open my eyes a bit, but I won't bore everyone here
with details; mail me directly and I'll just bore you. :) In any case,
most languages aren't concerned with solving the problems that I want
to see solved, but REBOL is.
j> Not sure whether Rebol is MOP or non MOP !
It's a proprietary language at this time, as I think it should be.
j> Rebol's community is the best there is, or the best I
j> found, but would like to hear from people that are
j> really facing the situation I do. Again, rebol might
j> be the best from an academic or IT standpoint but I am
j> only looking at it from a "for profit" sw developer
j> standpoint.
It's a small community, and nobody can say for sure where things will
lead. I liken it to the VB community in '91-'92. Other languages have
their own loyal following as well, but most languages aren't good for
humans. I think BASIC (structured) and REBOL are both good languages
for humans, which is why I like them. Hardly a formula for success
though. :) I started writing commercial Windows apps in VB1. I'm far
from an academic or IT guy, but mine is only one opinion.
j> You might argue that if something is really good who
j> cares about standards, but standards are very powerful
j> when they exist. How else can you explain M$ VC7
j> compiler suddenly being very compliant to C++ std when
j> VC6 wasn't !
How can you explain VB's success in that light? No standard there. :)
The question is not whether VC7 is compliant, but whether it's better
*because* it's compliant.
j> Why nobody has built a good cross platform library
j> (maybe I am not aware) that lets you build a great
j> looking app in Linux and run it in windows and not be
j> able to distinguish it from a VC or VB app ?
'cause it's darn hard! :)
j> I've come to the conclusion that rebol is good as glue
j> on the server side but not much else (except small
j> easy to maintain websites -if you build the tools for
j> it).
My conclusion is *very* different than yours, but our needs are probably
different as well. I have about a dozen C++ books on my shelf but only
did very minor actual work with it, so I speak from a position of
informed inexperience. :) My goal is not to influence you, of course,
just to give you my view.
-- Gregg
[7/16] from: tim:johnsons-web at: 24-Jan-2003 14:00
Jose:
Have you looked at the cygwin project?
Have you looked at OOP approaches to C
(as opposed to C++)?
Do you know about Dynace?
> Actually, REBOL has been a great training language to
> help me look into C++ with a broad set of
> requirements.
Not enough as been discussed (IMHO and within
earshot) about how to use rebol as a prototyping
tool and for transformational programming.
(Using rebol to write code for other, more
verbose languages like C/C++)
-tim-
* jose <[jjmmes--yahoo--es]> [030124 12:36]:
> Petr, Gregg, Tim, thanks for your input. Here is some
> more info to understand my POV.
<<quoted lines omitted: 138>>
> [rebol-request--rebol--com] with "unsubscribe" in the
> subject, without the quotes.
--
Tim Johnson <[tim--johnsons-web--com]>
http://www.alaska-internet-solutions.com
http://www.johnsons-web.com
[8/16] from: greggirwin:mindspring at: 24-Jan-2003 16:43
TJ> Not enough as been discussed (IMHO and within
TJ> earshot) about how to use rebol as a prototyping
TJ> tool and for transformational programming.
TJ> (Using rebol to write code for other, more
TJ> verbose languages like C/C++)
DOH! Thanks for the whack on the side of the head Tim! When proposing
VB in the days before it was an acceptable alternative, I would
sometimes offer to build a prototype which could then be implemented
in C by other people for production use. If the prototype worked well
enough, there would be no need to convert it.
-- Gregg
[9/16] from: jjmmes:yaho:o:es at: 25-Jan-2003 1:21
--- Tim Johnson <[tim--johnsons-web--com]> escribió: >
Jose:
> Have you looked at the cygwin project?
This is what their page says ->
<quote> What Is Cygwin? Cygwin is a UNIX environment
for Windows. </quote>
I don't want UNIX for Windows. I want to build apps
that are competitive vs other Windows apps build with
Visual C++
> Have you looked at OOP approaches to C
I've got to the point where I see C as legacy and only
very important to handle APIs to systems built in C.
Just reading the first 2 chapters of Stroustrup C++
reference and you see things differently, or his paper
Learning Standard C++ as a New Language
> (as opposed to C++)?
> Do you know about Dynace?
<<quoted lines omitted: 8>>
> verbose languages like C/C++)
> -tim-
Not sure it's worth it. I thought about building a C++
parser that translates a Rebol script into C++ , for
performance but I don't think it's worth it. You code
in C++ directly for performance and you use Rebol for
prototyping.
In GUIs I think differently, Rebol might do the job so
why spend more time to do the same.
___________________________________________________
Yahoo! Móviles
Personaliza tu móvil con tu logo y melodía favorito
en http://moviles.yahoo.es
[10/16] from: jjmmes:yah:oo:es at: 25-Jan-2003 2:13
> What you like is very important (at least to me).
> Different langugages
<<quoted lines omitted: 11>>
> I've only been
> REBOLing for a year and a half now.
What you like determines the motivation you have and
without great motivation is impossible to do great
things. You certainly have more experience than I do.
I like to also pick tools and match them to the needs.
Rebol matches the following needs (for me):
1) glue code
2) prototyping. Imposible to do anything where
performance matters.
3) potentially a great GUI tool
> When you say "low cost of development", do you mean
> the cost of the
> actual tools, the cost of your time in developing
> the products, or a
> combination of the two? Just something to think
> about.
Both, but above all is the gut feeling that you're
picking the right tool or that has momentum (marketing
people say "that it has momentum" to imply it's not a
dead end). Unfortunately there are many "great"
technical things that are dead ends -> Betamax
> When VB came
> out, and for a good while after, when I'd propose it
<<quoted lines omitted: 4>>
> - usually 6-12
> months faster. :)
In most cases time to market is more important than
actual performance. Most client apps have enough
performance.
I think the case for C++ is more recent. I really see
C and C++ as very different (although most people
don't because C++ is a superset of C).
Any serious/complex (in terms of functionality)
Windows app is written in C++. C++ is a lot more than
OO. There are many new concepts: STL, Generic
Programming, Design Patterns, Generic Patterns to
build reusable libraries, ... Do not want to critizice
but haven't found any new concept in Rebol that didn't
exist in OO or functional languages . Better
implementation of the concepts, definetely yes, that
is the innovation, and many times this type of process
innovation can make a company really successful
On the GUI side there might be lots of innovation but
I don't know !
I first read Carl's statement that OO wasn't it, and
messaging/dialects was a better paradigm, but really,
now, I think that you can use a tool like OO pccts,
http://www.antlr.org, and build any parser (for any
grammar) you want and for serious parsing I wouldn't
bet on Rebol's parse BNF. There is a lot more than
that and if you want to find a solution to an
important problem you have to dig deeper.
Rebol does have the simplicity that comes from
scripting and the elegant syntax ..
> j> Are you interested in a particular subject, e.g.
> j> finite-state machines, google and you'll find
<<quoted lines omitted: 12>>
> problems that I want
> to see solved, but REBOL is.
You can think using a piece of paper. The language is
implementation. You're one of the top guys here so it
doesn't sound good to hear "when I really start to get
it". I don't believe that, the more you "talk" in a
language the better you communicate but you rarely do
great things suddenly because you use that language vs
other .. This has some analogies with writers and
their masterpieces .. Every language has its ++ and --
but there is no silver bullet.
I'll mail you separately on FSM. The problem that
Rebol solves is being glue (that is if you have
command). A better bash ! On the GUI side it could be
a lot more ..
> j> Not sure whether Rebol is MOP or non MOP !
>
> It's a proprietary language at this time, as I think
> it should be.
Don't care about this. It's all about making the right
choices for the job you have to handle.
> How can you explain VB's success in that light? No
> standard there. :)
I can explain: VB success is mostly a result of good
marketing judgement and maybe some good technical
decisions, but certainly a lot of business strategy ..
De facto standards, like TCP/IP or VB are most
important but C++ is the rare case where a committee
std is important, relevant .. and companies like MS
can not write the rules completely ...
> The question is not whether VC7 is compliant, but
> whether it's better
> *because* it's compliant.
Lippmann, the MS VC++ architect explains this in an
interview. In a nutshell, it's better because there
are a ton of libraries conforming to the std that you
can use and you couldn't before
Good brainstorm !
___________________________________________________
Yahoo! Móviles
Personaliza tu móvil con tu logo y melodía favorito
en http://moviles.yahoo.es
[11/16] from: sunandadh:aol at: 24-Jan-2003 20:54
Jose:
> This was the case I had
> with C++, seen lots of criticism, complex, etc... but
> once I started looking into it I liked it even more
> than any scripting language, and found it's the
> current language to beat for any serious app, either
> client or server.
If we are not careful this could slide into the equivalent of "what's the
best ball for any serious sport?" type discussions that can bedevil computer
language comparisons.
Just as a golfer and a hockey player will disagree about size by an order of
magnitude, and a soccer player and an America football player can't even
agree on a shape, so too are doomed many such discussions.
For example, for you want specifically to write:
-- Windows GUI applications for profit
-- in which performance isn't an issue ("Most client apps have enough
performance")
-- cross-platform is only an "eventual must have".
For me, cross platform has got to be there from Day 1, and some of my apps
are running on some very unlikely legacy machines so cross-platform language
performance is an issue for me.
And again, for you a server must have "Everything built with GNU C++ and
Linux". It's important for me to work with whatever my clients have on their
servers.
Our starting points are so different that explaining my choices of languages
and platforms wouldn't shed much light on the languages and platforms you
need.
Be happy with your choices; I'm happy with mine.
Sunanda.
[12/16] from: atruter:labyrinth:au at: 25-Jan-2003 13:06
Use whatever tools you enjoy using. Coding should be an enjoyable
experience not a chore!
Me, I just prefer the declarative approach to GUI construction. Oh, and the
small fact that I am 2-6 times more productive with it than my previous
languages of choice, Delphi (for Windows GUI stuff) and PERL (for UNIX-
based work). The fact that REBOL-based backup, accounts, database, freight
systems are an integral part of my business is testament to its ability to
do the job
and do it quickly.
I try to remember that:
1) Time and cost are paramount. The customer wants the cheapest product
that will do the job, and they want it now.
2) Language / Cross-platform are developer issues. The customer wants a
product that runs on their platform, if it meets 1) above they don't care
what tools you used to create it!
3) Happy coders are good coders.
Regards,
Ashley
[13/16] from: tim:johnsons-web at: 24-Jan-2003 18:02
* jose <[jjmmes--yahoo--es]> [030124 15:49]:
> I've got to the point where I see C as legacy and only
> very important to handle APIs to systems built in C.
>
> Just reading the first 2 chapters of Stroustrup C++
> reference and you see things differently, or his paper
> "Learning Standard C++ as a New Language"
C++ is touted as for large projects - but there must be
a reason that so much of the Linux Kernel is built in
C. Could it be CVS?
Watch those headers files :-) they'll kill your
development curve.
> > (as opposed to C++)?
> > Do you know about Dynace?
<<quoted lines omitted: 15>>
> in C++ directly for performance and you use Rebol for
> prototyping.
From what I've seen of some of the more advanced rebol
programming, the reverse might be the answer: Use
rebol to build C++ code - just a thought - and you might
want to research what is being done in scheme,lisp and
bigloo ----
> In GUIs I think differently, Rebol might do the job so
> why spend more time to do the same.
<<quoted lines omitted: 6>>
> [rebol-request--rebol--com] with "unsubscribe" in the
> subject, without the quotes.
--
Tim Johnson <[tim--johnsons-web--com]>
http://www.alaska-internet-solutions.com
http://www.johnsons-web.com
[14/16] from: greggirwin:mindspring at: 25-Jan-2003 17:11
Hi Jose,
(This ended up getting rather long-winded. My apologies. -G)
j> Imposible to do anything where performance matters.
I'd disagree with the use of "impossible" and "anything". Yes, there
are certainly things where REBOL is not up to the task,
performance-wise, but there are plenty of tasks where it is more than
up to the task as well. I know that my LCS implementation for creating
DIFFs is *hideously* slow in REBOL but I think that's the only thing I
have (non-graphics wise) that really sucks performance wise.
j> Any serious/complex (in terms of functionality) Windows app is written in C++.
You have to know that this statement is highly contestable. :)
j> C++ is a lot more than OO. There are many new concepts: STL, Generic
j> Programming, Design Patterns, Generic Patterns to build reusable libraries, ...
Yes, but those concepts don't apply only to C++. Large parts of the
what the STL covers are already included in REBOL and other
lanaguages. C++ and REBOL are just very different languages, with very
different goals.
j> Do not want to critizice but haven't found any new concept in Rebol that didn't
j> exist in OO or functional languages .
Very few new languages, or any software for that matter, contain something
that is completely original. Icon has generators and Eiffel has
Assertions as part of their fundamental design, or core tenet, but can
you say that those are new concepts? What gives a language its
personality, or flavor, is how its designer(s) take what they've
learned from experience (their own or others) and mix them with the
vision they have. The end result, how those concepts are applied and
how they fit together, is what largely determines whether we like a
language or not.
That said, I'd like it if others here would contribute - just for my
edification - their thoughts about some of the important concepts
REBOL is based on, and what other languages share those traits; either
here, or mail me directly if you want. Consider this an aside to the
main message. :)
Assembly language is very strong on the idea of code/data duality.
What other high level languages do it? REBOL is its own meta language.
What other languages do that? REBOL has a large number of native
datatypes, and the concept pseudo types (e.g. any-block!). Others?
Forth was sometimes called "a language construction kit" as much as a
language. REBOL elevates that concept explicitly with dialects. Do any
other languages? Other things you can think of?
OK, back to the message...
j> On the GUI side there might be lots of innovation but I don't know !
Yes and no for me. If we look at VID, we can say that it does some
things in neat ways, has its own share of warts, and does allow for
some new ways of looking at things. OTOH, if we look at VID as an
*example*, we might say that REBOL is innovative in how it supports
the idea of building new systems for describing user interfaces which
are tightly integrated with the core language.
j> I first read Carl's statement that OO wasn't it, and
j> messaging/dialects was a better paradigm, but really,
j> now, I think that you can use a tool like OO pccts,
j> http://www.antlr.org, and build any parser (for any
j> grammar) you want and for serious parsing I wouldn't
j> bet on Rebol's parse BNF. There is a lot more than
j> that and if you want to find a solution to an
j> important problem you have to dig deeper.
Sure, you can build a parser in just about any language. There are
lots of toolkits out there for various languages to do so. It's the
approach - the core view of how you build parsers - that's different
in REBOL, and why *I* like it *so* much more than other approaches. It
has its limits of course, but within those limits it is enormously
powerful IMO. I'm not sure what you mean by "serious" parsing though.
j> You can think using a piece of paper. The language is implementation.
Agreed; somewhat. :) I do lots of my design work on paper but I have
to translate those designs into working applications. Even if I'm working
on a design for which I have no idea what the implemenation language
will be, I will think in terms of *some* language - be it natural,
artificial, graphical, or what-have-you. If I'm working on a design
and I know what language I'm going to use to implement it, that will
influence the design heavily; I'm designing *for that language* after
all. If I speak only Basque, and it doesn't have any words to support
the concept of nuclear physics, it's going to be much harder to talk
about that subject in Basque.
A programming language serves two related purposes: it provides a
vehiclce for the programmer to specify actions to be executed, and it
provides a set of concepts for the programmer to use when thinking
about what can be done...the second aspect ideally requires a
language that is 'close to the problem to be solved' so that the
concepts of a solution can be expressed directly and concisely...
The language provides the programmer with a set of conceptual tools.
--Bjarnre Stroustrup
I don't mean to use that as an argument for REBOL, or against C++, but
it's something I greatly agree with completely and expresses my
feelings very well. Note also that I think we're still using REBOL
very much like we would any other language, and as that changes, the
differences - what makes it special - will become more apparent.
j> You're one of the top guys here so it doesn't sound good to hear
j> "when I really start to get it".
Sorry. I post a lot, and answer the easy questions when I can, but I'm
still just a babe in the woods with REBOL. For me, picking up the
basic syntax of a language isn't the hard part, it's learning how to
use it effectively that's the hard part. For some languages that isn't
a problem because you don't have many ways to express things or solve
problems. With REBOL, I often see huge gains when I refactor things,
or attack problems in a different way. "Getting it" applies to
individual solutions and also letting go of old habits from other
languages. My first cut at a problem, even if only mentally, still often
leans towards the obvious "brute force" approach I might need to use
elsewhere where a much more elegant REBOL solution will eventually find
its way out.
I don't want to sound all soft and fuzzy about this stuff. I take my
software development very seriously.
j> I don't believe that, the more you "talk" in a language the better
j> you communicate but you rarely do great things suddenly because you
j> use that language vs other ..
Yes, but talking in a language is different than thinking about how to
express yourself in a language. Imagine trying to write poetry, or
imagery-laden prose, in a language you're not deeply fluent in, even if
you can communicate in that language.
Thanks for posting. I don't mean to deter you from C++ in any way. Please
don't take my post as criticism in any way; take it to mean that I
care enough to think hard about why *I'm* using REBOL. :)
-- Gregg
[15/16] from: g:santilli:tiscalinet:it at: 26-Jan-2003 19:19
Hi jose,
On Saturday, January 25, 2003, 2:13:19 AM, you wrote:
j> Windows app is written in C++. C++ is a lot more than
j> OO. There are many new concepts: STL, Generic
j> Programming, Design Patterns, Generic Patterns to
j> build reusable libraries, ... Do not want to critizice
j> but haven't found any new concept in Rebol that didn't
j> exist in OO or functional languages .
Actually, I have not seen a single thing in any other language I
know that is not in REBOL. ;-)
However, I don't know any other language that has: dialecting;
based on a single concept (values); 100% reflexivity; code = data;
and so on...
j> grammar) you want and for serious parsing I wouldn't
j> bet on Rebol's parse BNF. There is a lot more than
j> that
I don't think so. ;-)
I HAVE used other language, and they usually require me working
much more time to do the same thing. Once I had to fiddle for
three weeks to complete half of a project in Java; I could have
finished it in REBOL in a day or two.
Regards,
Gabriele.
--
Gabriele Santilli <[g--santilli--tiscalinet--it]> -- REBOL Programmer
Amigan -- AGI L'Aquila -- REB: http://web.tiscali.it/rebol/index.r
[16/16] from: doncox:enterprise at: 28-Jan-2003 19:22
On 24/01/03, jose wrote:
> Why nobody has built a good cross platform library
> (maybe I am not aware) that lets you build a great
> looking app in Linux and run it in windows and not be
> able to distinguish it from a VC or VB app ? Maybe
> rebol will be that, maybe java, maybe stg else !
For the same reason nobody has written a program to translate poetry
from one language to another. The basic structure and concepts are
different, so you have to do a fundamental rethink.
Regards
--
Don Cox
[doncox--enterprise--net]
Notes
- Quoted lines have been omitted from some messages.
View the message alone to see the lines that have been omitted