Language recommendations from ruby persons....

G

Greg Lorriman

Dear sirs and madames,

I've thrown myself into ruby and I'm having a pleasant time.

Now I am looking to find another language to learn with three features, two
of which Ruby has, and I am looking for your words of advice and guidance.

The features I am looking for are

1)enjoyableness
2)practicalness
3)alternativeness

with a decent nod to

4)not so long a learning curve (hey, I'm from the TV generation; I need
instant kicks).

Ruby does the first two, but now I want to cruise into other dimensions, and
ruby isn't really weird and alternative enough.

I really would like something that makes me think in a very different
manner, and is excellent at solving a range of problems that imperative
languages are not too good at. I would like to be using it a lot for
real-world stuff, like I am Ruby and Delphi.

Now because you guys are tuned to enjoyableness, and probably have a measure
of appreciation of the need for practicality I am hoping that you might give
me some commentary on what you think might be worth looking at.

I've vaguely looked at Ocaml, Heskel, Scheme, Mercury. (Lisp would seem to
wander too far away from simplicity which I reckon probably impacts
enjoyableness, but then someone has said that OCaml isn't so simple but is
very enjoyable; so you can see why I haven't listed simplicity as a
requirement.). I doubt I can go too far off the mainstream since requirement
2 would be impacted. So if anyone wishes to comment on the usual
'alternative' languages, as well as exotic stuff from other galaxies, then I
am very interested.

Of course I have no experience in any of these. I also see little in the way
of languages being compared for enjoyableness. I don't care for performance
tables since performance only solves one problem which Intel and AMD can
solve for me, and I'm more interested in the infinite number of other
problems.

Grateful for any of your wonderful and marvellous thoughts,

Greg
 
B

Brian Mitchell

Dear sirs and madames,
=20
I've thrown myself into ruby and I'm having a pleasant time.
=20
Now I am looking to find another language to learn with three features, t= wo
of which Ruby has, and I am looking for your words of advice and guidance=
 
D

Devin Mullins

There's plenty of places you can find recommendations for languages.

- this mailing list (the archives will have references to all the ones
you meantion, plus other ones such as Io, and D, and boo, and Groovy -
of which Io is the only one you might call "far out" - and, oh yeah,
Smalltalk)
- practically any programming mailing list :)
- http://lambda-the-ultimate.org/ (where language geeks go to be snobby
and up-tight)
- http://www.google.com/search?q=esoteric+programming+languages (okay,
those probably weren't what you were looking for)
- http://cliki.tunes.org/Programming Languages -- This page nicely
categorizes them by "paradigms."

Here's two languages you're not likely to find immediately. Presented
for no apparent reason.

1. http://www.erights.org/e/satan/ -- I haven't actually read this
paper, but it seems topical, so maybe somebody else will, and provide us
a book report. :)
2. http://www.madore.org/~david/programs/unlambda/ -- The purest,
simplest programming language ever, and it's functional, to boot. Smart
combination of a few simple constructs allows for a whole world of
flexibility.

Have fun.

Devin
APL, Eiffel, Erlang, Haskell, Io, Joy, Lisp, Lua, Mathematica,
Mozart/Oz, OCaml, Prolog, REXX, Scala, Scheme, Self, and Smalltalk are
all the legitimate, 'alternative' languages that I recognize (by name
only, for the most part) from that wiki page, so maybe that makes them
more popular. Now get to Googlin'.
 
G

Gavin Kistner

Javascript. It is a very cool language. Like Io in many ways too. If
you can get passed the bad rap of DHTML then this language is very
well designed.

But, to put in my two cents, it ain't perfect. The language is made
up of objects (with methods, properties), and it lends itself quite
well to making simple hash-objects which all 'inherit' from the same
object. (The 'prototype' property of functions is like Lua's __index
metatable property, causing a lookup-chain to be used for specific
objects. Despite the name of the property, it is not a 'prototype-
based' language, since instances of a 'class' refer to that class,
rather than being copies of it.)

However, despite my own love of JavaScript, it ain't pretty in three
regards:
1) There's no standalone interpreter (that I know of, and certainly
not part of any 'official' distribution), which leaves you at the
mercy of WSH or some sort of web-based interpreter[1].

2) Similarly, the core language can do very little on its own. No
file IO, no http libraries, no threading, no matrix or math
libraries. You're at the mercy of whatever additional libraries your
interpreter (or own JS bindings) give you.[2]

3) You can simulate a class, but not too well[3]. (You can use
closures to define 'private' and 'protected' methods, but they
require new instances of the method functions to be allocated for
each instance of the object.) Inheriting one class from another is
even more difficult[4].

Lua is powerful because it's bare-bones speedy and simple, but it's
not enjoyable to work with as a scripter. Ruby is awesome for the
scripter, but (at the moment) too slow to do everything in for CPU-
intensive apps. JS is sort of a nice mix between pleasing features
and speediness. But only if you have a good interpreter and
environment exposing all the native objects you need to get your work
done.

Basis for my analysis: I've been programming in JavaScript in web
browsers since 1996, and using it in my company's 3D product[5] with
JS bindings to C++ native methods[6] for the last year.

[1] http://phrogz.net/tmp/simplejs.html
[2] http://phrogz.net/ObjJob/objects.asp?langID=4
[3] http://phrogz.net/JS/Classes/OOPinJS.html
[4] http://phrogz.net/JS/Classes/OOPinJS2.html
[5] http://www.anark.com/
[6] http://phrogz.net/ObjJob/objects.asp?langID=11
 
G

Greg Lorriman

Devin Mullins said:
There's plenty of places you can find recommendations for languages.

hmmm. I didn't ask for other places for recommendations for other languages.
I have already visited many places; I am surprised you did not infer this
from my post.

I posted in the hope of personal opinions of Ruby programmers specifically,
since they bring a more pertinant spirit to my quest (particularly
enjoyableness).
- this mailing list (the archives will have references to all the ones you
meantion, plus other ones such as Io, and D, and boo, and Groovy - of
which Io is the only one you might call "far out" - and, oh yeah,
Smalltalk)

Seems like you did and didn't read my post at the same time. Very strange.
Here's two languages you're not likely to find immediately. Presented for
no apparent reason.

....I prefer reasons.
1. http://www.erights.org/e/satan/ -- I haven't actually read this paper,
but it seems topical, so maybe somebody else will, and provide us a book
report. :)
2. http://www.madore.org/~david/programs/unlambda/ -- The purest, simplest
programming language ever, and it's functional, to boot. Smart combination
of a few simple constructs allows for a whole world of flexibility.

sounds kinda interesting. But is it enjoyable? Is it practical? I was
careful to list what I am looking for quite prominently.
Have fun.

I am trying.
Devin
APL, Eiffel, Erlang, Haskell, Io, Joy, Lisp, Lua, Mathematica, Mozart/Oz,
OCaml, Prolog, REXX, Scala, Scheme, Self, and Smalltalk are all the
legitimate, 'alternative' languages that I recognize (by name only, for
the most part) from that wiki page, so maybe that makes them more popular.
Now get to Googlin'.

? I can't believe my eyes.

Can someone tell me if I am talking to a troll?
 
G

Greg Lorriman

Hi,

Somehow your reply hasn't rendered in Outlook Express, something I've not
personally seen before. It could just be the notorious OE, but I thought I
would mention it in case your mailer needs a tweak.

This is the full content of what OE is showing me (and below that a reply
from what I got from google groups):
==begin
Dear sirs and madames,

I've thrown myself into ruby and I'm having a pleasant time.

Now I am looking to find another language to learn with three features,
two
of which Ruby has, and I am looking for your words of advice and guidance=
==end

.....that's weird, neither is it showing in google :

http://groups.google.com/group/comp.lang.ruby/msg/b80d44a77317b35b
 
B

Brian Mitchell

=20
But, to put in my two cents, it ain't perfect. The language is made
up of objects (with methods, properties), and it lends itself quite
well to making simple hash-objects which all 'inherit' from the same
object. (The 'prototype' property of functions is like Lua's __index
metatable property, causing a lookup-chain to be used for specific
objects. Despite the name of the property, it is not a 'prototype-
based' language, since instances of a 'class' refer to that class,
rather than being copies of it.)

I think that could be argued but no matter. It has prototype features
with other features also available.
However, despite my own love of JavaScript, it ain't pretty in three
regards:
1) There's no standalone interpreter (that I know of, and certainly
not part of any 'official' distribution), which leaves you at the
mercy of WSH or some sort of web-based interpreter[1].

There are javascript libraries on certain platforms but beyond that I
think Rhino can be made standalone.
=20
2) Similarly, the core language can do very little on its own. No
file IO, no http libraries, no threading, no matrix or math
libraries. You're at the mercy of whatever additional libraries your
interpreter (or own JS bindings) give you.[2]
=20

The libraries are lacking, but with some cleverness hard things like
asynchronous execution can be handled with CPS and other nice tools.
I/O is lacking. Good enough to learn still as the DOM is a rich
library in itself (not great IMO but still very useful). Math is poor
but is good enough or can be built upon. Same goes for matrix stuff.
3) You can simulate a class, but not too well[3]. (You can use
closures to define 'private' and 'protected' methods, but they
require new instances of the method functions to be allocated for
each instance of the object.) Inheriting one class from another is
even more difficult[4].
=20

This type of emulation can actually be simplified if your private
etc.. methods are kept in a separate object and delegated to. The idea
is to minimize copying by using intermediate objects that can be
hidden a number of ways (function based closures can be powerful
tools). You probably know this though. Toy around. I am sure you can
find some ways to simplify your class system to make it very painless.
Though, in the end, you probably have more experience than me.
Lua is powerful because it's bare-bones speedy and simple, but it's
not enjoyable to work with as a scripter. Ruby is awesome for the
scripter, but (at the moment) too slow to do everything in for CPU-
intensive apps. JS is sort of a nice mix between pleasing features
and speediness. But only if you have a good interpreter and
environment exposing all the native objects you need to get your work
done.
=20

Lua is good when you need to be practical. I never fell in love with
its tables system. seems too far out of the way for how I think. I
guess I should have mentioned it.. I still only recommend it as an
embedded language.
Basis for my analysis: I've been programming in JavaScript in web
browsers since 1996, and using it in my company's 3D product[5] with
JS bindings to C++ native methods[6] for the last year.

Cool.
=20
[1] http://phrogz.net/tmp/simplejs.html
[2] http://phrogz.net/ObjJob/objects.asp?langID=3D4
[3] http://phrogz.net/JS/Classes/OOPinJS.html
[4] http://phrogz.net/JS/Classes/OOPinJS2.html
[5] http://www.anark.com/
[6] http://phrogz.net/ObjJob/objects.asp?langID=3D11
=20

Brian.
 
D

Devin Mullins

Greg,

What languages you deem "enjoyable" is very much a personal choice, and
one determined only through exploration and experimentation. It sounds
like you've explored -- you seem to have a decent list of languages of
which you're aware. Now you have to do the second part -- experiment
with them.

That's why I didn't answer your question directly. Rather, I latched
onto the only context-independent criterion of yours that I found --
"not imperative" -- and gave you a list of non-imperative languages. For
me, Ruby's been the most fun language I've run into. 'swhy I'm here.
BASIC was fun back in the day. But YMMV.

Yes, my post included humor. Possibly, my sense of humor is different
from yours.
APL, Eiffel, Erlang, Haskell, Io, Joy, Lisp, Lua, Mathematica, Mozart/Oz,
OCaml, Prolog, REXX, Scala, Scheme, Self, and Smalltalk are all the
legitimate, 'alternative' languages that I recognize (by name only, for
the most part) from that wiki page, so maybe that makes them more popular.
Now get to Googlin'.
What makes you question them? APL? Check extremeprogramming@yahoogroups.
There's a guy there who swears by the language.
Can someone tell me if I am talking to a troll?
If by "troll" you mean, "just writing to see what kind of reaction I can
get out of you," then, no. If by "troll," you mean, "guy who doesn't
type anything of substance," then you've got yourself a matter of
opinion, there, and mine would probably be different from yours.
Historically, at least, ruby-talk seems to have a opinion of me that
lies somewhere between neutral and positive.

Devin
 
G

Greg Lorriman

I hope to recieve replies to my questions, and I value other persons
subjective experience of "enjoyment", as asked for in my original post.

Thankyou for your effort at replying to my original post.
 
J

James Britt

Greg said:
...



sounds kinda interesting. But is it enjoyable? Is it practical? I was
careful to list what I am looking for quite prominently.

The intersection of practical and interesting may be quite small.

Someone suggested JavaScript; not a bad idea, though probably not
different enough from Ruby to really stretch your brain. But, if
practical is a major factor, consider jscript.net. You can use
Microsoft's version of ECMASscript to write .Net code. (I *think*
there is a jscript.net compilier for mono, but I'm not sure.)

But if you are really looking for something that helps you think in a
different direction, yet isn't merely academic or weird-for-weirdness
sake, try a functional language such as Haskell.

Or consider OCaml; some folks here were discussing ways of writing
binary Ruby extensions in OCaml as opposed to C which seemed quite
interesting.

Lisp, Haskell, and Ocaml are floating in the back of my own mind as
candidates for next language to learn. Lisp has the upper hand so far,
because, well, it's *Lisp*. And there are lots of good, free resources
for it.


I am trying.




? I can't believe my eyes.

Can someone tell me if I am talking to a troll?

Well, they do exist and occasionally appear on this list. I suggest
that, before you think someone a troll, try to be generous and just
assume the poster is not a native speaker of English, and may have only
skimmed your original post, and really means well but doesn't always
come off well in plain text.

James

--

http://www.ruby-doc.org - The Ruby Documentation Site
http://www.rubyxml.com - News, Articles, and Listings for Ruby & XML
http://www.rubystuff.com - The Ruby Store for Ruby Stuff
http://www.jamesbritt.com - Playing with Better Toys
 
G

Greg Lorriman

The intersection of practical and interesting may be quite small.

....and therefore more difficult to find. And so one asks questions....
But if you are really looking for something that helps you think in a
different direction, yet isn't merely academic or weird-for-weirdness
sake, try a functional language such as Haskell.

Is this recommendation from experience? I am really looking for informed
opinions, particularly as enjoyment of a language tends not to be vicarious.
Or consider OCaml; some folks here were discussing ways of writing binary
Ruby extensions in OCaml as opposed to C which seemed quite interesting.

Yes, but why OCaml? Is it enjoyable? Learning curve...etc.., do you actually
have experience of it?
Lisp, Haskell, and Ocaml are floating in the back of my own mind as
candidates for next language to learn. Lisp has the upper hand so far,
because, well, it's *Lisp*.

That does seem like a rather self-referential reason. I would probably not
choose Lisp on this particular recommendation.
And there are lots of good, free resources for it.

Also for many other languages.
Well, they do exist and occasionally appear on this list. I suggest that,
before you think someone a troll, try to be generous and just assume the
poster is not a native speaker of English, and may have only skimmed your
original post, and really means well but doesn't always come off well in
plain text.

My response, IMO, was quite constrained.

Greg
 
D

Dave Burt

James said:
Lisp, Haskell, and Ocaml are floating in the back of my own mind as
candidates for next language to learn. Lisp has the upper hand so far,
because, well, it's *Lisp*. And there are lots of good, free resources
for it.

I'm starting on Haskell, as time permits. Haskell has syntax (Lisp doesn't)
and classes and type declarations. Functional programming is a different
paradigm, powerful, more directly mathematical. And you can bring some of it
back to Ruby.

Of course, there's also COBOL, which may be the most popular language in the
world by lines of code in production, but I think many would agree with my
claim that it is more painful than it is practical, and it is certainly
practical - there are COBOL jobs.

I just posted a paragraph on COBOL to comp.lang.ruby :)

Cheers,
Dave
 
K

Kev Jackson

The features I am looking for are

1)enjoyableness
2)practicalness
3)alternativeness

with a decent nod to

4)not so long a learning curve (hey, I'm from the TV generation; I need
instant kicks).
Of the top of my head, these are some of the languages that I've got
listed to play with at some point in time, or have played with
previously (note that I've no production level experience):
Lisp - got playing with this on a very boring business trip (there's an
online interpreter somewhere, google for Lisp tutorial).
Pros
- you can do pretty much anything with it (the tutorial leads you
through writing your own mini-language for an old school adventure game,
it was an eye-opener how easy it was).
- lots of other languages take ideas from Lisp, so learning Lisp is
a good way to expand your knowledge overall (it'll help in many many
other areas - again based on my limited exposure)
- I think from your list it covers 1,2 and 3 (but only in my opinion)
Cons
- notoriously alternative
- wierd keywords (car?)
- braces everywhere!
- not so easy to learn (not 4 in your list)

ML (Ocaml, New Jersey ML, SML, whatever ML) - spent 3 years with one
version of this at uni, an interesting and wonderful language
Pros
- it's so easy to do stuff that takes a lot of C
- functional so completely different from mainstream procedural and
OO (though I think Ocaml has an object system, the version I learnt on
didn't)
- 1 and 3 from your list covered
Cons
- not very practical (the version I used had no elegant way to do
IO, I guess that's been fixed now, but I haven't looked at it in a long
time)
- learning the language is easy, but the shift to a purely
functional style of programming is hard to get at first. I remember
being asked to do some stuff in C after 1 1/2 years of SML and thinking,
"It's like 3 lines of SML, why the hell is it so much trouble in C", so
from my experience, once you get it, it's amazingly powerful and enjoyable

Boo (statically typed, .Net language similar to Python), I've only
looked at it, I've *never* written a line of Boo code, so these are my
initial thoughts
Pros
- like python, but access to .Net libs
- very practical
- very alternative
- looks pretty easy to pick up
- Pacman ghost as logo!
Cons
- not much documentation (like most codehaus projects I've got to say)

Erlang (can't remember who makes this, Siemens, Samsung or someone
involved in telecommunictaions)
Pros
- looks very powerful for when you need high availability in your code
- thread management model is very very well thought out
- extremely alternative
Cons
- maybe not so practical for all domains
- I'd imagine a steep learning curve (so far I've not had chance to
do more than scan the most basic of docs - not even a hello world sample)
- may not be enjoyable

Eiffel - played with this for the first time about 6 years ago, keep
meaning to return to it, but never have the time or motivation
Pros
- practical (there's even a .Net version so you can access the .Net
libs)
- alternative (ish)
- can produce very fast code (compiles to native code)
Cons
- not the most enjoyable experience I've ever had learning a new
language
- quite a bit to learn (different terminology etc)

If you know Java, I'd also suggest looking into the extensions that are
becoming available. AspectJ is very cool and as a long-time Java
developer, AspectJ was a breath of fresh air to play with. I've got
quite a bit of experience of it and I think it's a very useful thing to
learn (at the very least the tutorials show how much cleaner you can
make your code). XJ from IBM also looks interesting, it's an embedded
XML in Java extension, wierd and makes the source code look funky, but I
think it may have potential too - currently only works on 1.4 (no
generics etc).

Please note I'm not in any stretch a 'rubyist', I'm still learning how
ruby works myself, so take all the above with a large pinch of salt.

Kev
 
J

James Britt

Greg said:
....and therefore more difficult to find. And so one asks questions....

Have you tried the pragprog list? I believe many list members gather
'round for Language of the Year study sessions. And there have been
many discussions exactly like this one.
Is this recommendation from experience? I am really looking for informed
opinions, particularly as enjoyment of a language tends not to be vicarious.

It is based on comments I've read from others in my own perusal for a
Next Language.

Still, even if I *had* learned Haskell, you'd be getting an opinion from
someone you've never met and know next to nothing about, and whose ideas
of enjoyment may be peculiar.

If you get 10 people saying, "I've not used it but I've heard good
things", that may be more valuable than one person swearing by it from
personal use.

After all, I say nice things about Visual Basic.

...



That does seem like a rather self-referential reason. I would probably not
choose Lisp on this particular recommendation.

Still, A recursive recommendation for Lisp does seem appropriate.
Also for many other languages.

The best idea may be to avail yourself of some of those resources and
just try stuff out. Pick stuff at random.



James
 
G

Greg Lorriman

Kev, if I wasn't straight and a catholic I would propose marriage.

Thanks for the great info. I'm now going to re-read what you wrote....

Greg
 
G

Greg Lorriman

James Britt said:
Have you tried the pragprog list? I believe many list members gather
'round for Language of the Year study sessions. And there have been many
discussions exactly like this one.

That's a great idea. Thanks for the suggestion.
It is based on comments I've read from others in my own perusal for a Next
Language.

Still, even if I *had* learned Haskell, you'd be getting an opinion from
someone you've never met and know next to nothing about, and whose ideas
of enjoyment may be peculiar.

I wouldn't bother with usenet, or the internet for that matter, if these
were considerations which bothered me. he he.
If you get 10 people saying, "I've not used it but I've heard good
things", that may be more valuable than one person swearing by it from
personal use.

I personally consider that an opinion from experience is worth 100 without,
not having met the person not-withstanding. Ok, make that 1000 just to
really bash your 10 to 1!!! :)
After all, I say nice things about Visual Basic.

I don't know how to respond to that.
Still, A recursive recommendation for Lisp does seem appropriate.

I had a feeling that might be the case.
The best idea may be to avail yourself of some of those resources and just
try stuff out. Pick stuff at random.

True, I could, and maybe sometime I will, but before I waste alot of time
doing that I would rather gather as many informed opinions, preferably
personal, as possible. I very much enjoy informed personal opinions, and
feel that they are valuable, especially when contrasted against each other.
For similar reasons I need plenty of charactererisation when I read a novel.

thanks,

Greg
 
M

Martin DeMello

Greg Lorriman said:
Dear sirs and madames,

I've thrown myself into ruby and I'm having a pleasant time.

Now I am looking to find another language to learn with three features, two
of which Ruby has, and I am looking for your words of advice and guidance.

The features I am looking for are

1)enjoyableness
2)practicalness
3)alternativeness

There are lots of choices for 1 and 3, so I'm currently focusing on (2),
and extending my toolkit with languages that play in different spaces.
Currently learning OCaml (compiled, statically typed language), and plan
on following up with Scala (targets JVM and .NET). Both are enjoyable,
and different enough to add a new way of thinking about problems; both
should be attractive to people who like Ruby.

D shows promise, but the last time I looked at it (a month or two ago) I
was disappointed by the state of the libraries, so I'd give that one a
while. Haskell I really enjoyed learning, but I haven't used it for
anything since.

martin
 
H

Hugh Sasse

So far nobody has mentioned Unicon.
http://unicon.sourceforge.net/
and see also
http://www.drones.com/unicon/

My experience was dabbling in Icon, which is basically no longer
being developed (TTBOMK).

Now I am looking to find another language to learn with three features, two [...]
1)enjoyableness

Yes, it is elegant .
2)practicalness

Lots of example usages, because nearly all the icon ones should work.
3)alternativeness

It is goal directed, with backtracking. Statements succeed, or they
fail silently, and this is used in the goal-meeting.
with a decent nod to

4)not so long a learning curve (hey, I'm from the TV generation; I need
instant kicks).

Depends what you are used to. I never really got fluent in it, and
haven't had time to do so, but would like to because I can see it is
powerful.
I really would like something that makes me think in a very different
manner, and is excellent at solving a range of problems that imperative

Yes, goal directed stuff is pretty different. Allows expressing
solutions in a different way from normal.
languages are not too good at. I would like to be using it a lot for
real-world stuff, like I am Ruby and Delphi.

Lots of sample scripts came with Icon, and I think do with Unicon,
but its a while since I looked.

HTH
Hugh
 
J

Jussi Jumppanen

Gavin said:
1) There's no standalone interpreter (that I know of, and
certainly not part of any 'official' distribution), which
leaves you at the mercy of WSH or some sort of web-based
interpreter[1].

Microsoft publish the WSH COM interface and by using this
interface it is fairly easy to embbed Java Script into any
application.

This is the same interface used by the Zeus editor to drive
it's Java Script and VB Script macros scripting options.

I would assume it should be quite easy to embbed the Java
Script WSH into a simple Win32 console application, giving
you a basic stand alone enterpreter.
Lua is powerful because it's bare-bones speedy and simple,
but it's not enjoyable to work with as a scripter.

Funnily enough Zeus also offers a Lua as one of its macro
scripting languages :)

Jussi Jumppanen
Author of: Zeus for Windows Editor (New version 3.95 out now)
"The C/C++, Cobol, Java, HTML, Python, PHP, Perl folding editor"
Home Page: http://www.zeusedit.com
 
J

James Edward Gray II

Lisp - got playing with this on a very boring business trip
(there's an online interpreter somewhere, google for Lisp
tutorial). Pros
- you can do pretty much anything with it (the tutorial leads
you through writing your own mini-language for an old school
adventure game, it was an eye-opener how easy it was).

I'm interested in this tutorial, if you wouldn't mind providing a
link. I did some Googling, but couldn't seem to come up with it.

James Edward Gray II
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,999
Messages
2,570,246
Members
46,839
Latest member
MartinaBur

Latest Threads

Top