Jump to content

Learning a New Language


Lee Mac

Recommended Posts

I was hoping to broaden my knowledge in the programming side of things and have a go at trying to learn another programming language. However, I have no clue which language to move into, or the required facilities with which to learn it.

 

I have found this link, but I am lost as to what I need to download in order to get me started.

 

I have not quite mastered LISP and Visual LISP to its full capacity, however, I hope that broadening my knowledge with another language will aid my understanding of programming as a whole.

 

Any advice, tips, links are welcomed and appreciated.

 

Thanks for you time, enjoy your weekend.

 

Lee

Link to comment
Share on other sites

  • Replies 23
  • Created
  • Last Reply

Top Posters In This Topic

  • Lee Mac

    9

  • Freerefill

    4

  • SEANT

    3

  • BIGAL

    2

If you want to program for AutoCAD the best bet is C++.

With C++ you can create ARX file to access the AutoCAD database much deeper than lisp or visual lisp.

Object oriented programming is what is called. With C++ / arx you can create you own objects and control them as you see fit you also can have more control over AutoCAD’s objects. This is a much more powerful program language that lisp, vlisp or visual basic.

Some of the drawbacks are: A lot more coding, and having to re-compile for each version change AutoCAD makes. Depending on what version of C++ the AutoCAD version is in you have to compile for it.

You will also have to download the ARX developer’s files for each version you want to compile in form AutoCAD.

This means you really have to be organized to use this method. But in the long run you will be a better programmer.

I would suggest starting with the plain-jane C++ for dummies and just write a few simple stand-alone programs so you get the feel of what is basically going on.

Then move to the C++dot net stuff and start looking into ARX for autocad.

There are a lot of helpful sites on the internet and a few good books avalibel go guide you.

Good luck

Link to comment
Share on other sites

Many thanks for the information John, I had thought about C++, but it seemed quite daunting with all the "extras" needed to program with it.

 

I shall have a browse and see what I can find.

 

Many thanks for your time and advice,

 

Lee

Link to comment
Share on other sites

From what I've heard, all the Visual languages aren't that great, and that they aren't very flexible. C and C++ however are very powerful and portable, and yes, daunting. I picked up a "Learn C in 21 days" book and it looks very easy to read, the problem is, it's harder for me to do something like that because I always get distracted by other things, and the fact that you learn a lot of very basic data manipulation functions before you learn what use they are, whereas with LISP you can draw a line and see your code work before your very eyes.

 

I'm going to try learning C again, AutoLISP is nice but it only works with AutoCAD. LISP is nice, but it's a scripting language, so it would be good to tie in with more versatile programs but not good to write one from scratch (no GUI in LISP). C will let me make executibles that I can send to people and whatnot.. people who don't have AutoCAD.

 

Let me know if you find any forums similar to this for C, I'd be eager to join them.

Link to comment
Share on other sites

From what I've heard, all the Visual languages aren't that great, and that they aren't very flexible. C and C++ however are very powerful and portable, and yes, daunting. I picked up a "Learn C in 21 days" book and it looks very easy to read, the problem is, it's harder for me to do something like that because I always get distracted by other things, and the fact that you learn a lot of very basic data manipulation functions before you learn what use they are, whereas with LISP you can draw a line and see your code work before your very eyes.

 

I'm going to try learning C again, AutoLISP is nice but it only works with AutoCAD. LISP is nice, but it's a scripting language, so it would be good to tie in with more versatile programs but not good to write one from scratch (no GUI in LISP). C will let me make executibles that I can send to people and whatnot.. people who don't have AutoCAD.

 

Let me know if you find any forums similar to this for C, I'd be eager to join them.

 

Yes, C, C++, C# all sound "the business", but learning them and being proficient in them is most probably a steep upward climb...

 

As for forums, I believe there is a section on TheSwamp.org for C, C++ etc.. Some great minds on that site.. I feel like a complete amateur.

Link to comment
Share on other sites

Yes, C, C++, C# all sound "the business", but learning them and being proficient in them is most probably a steep upward climb...

 

As for forums, I believe there is a section on TheSwamp.org for C, C++ etc.. Some great minds on that site.. I feel like a complete amateur.

 

People who don't know LISP would say the same thing about your knowledge, Lee. The mountain is always tallest when you're standing at the bottom.

Link to comment
Share on other sites

People who don't know LISP would say the same thing about your knowledge, Lee. The mountain is always tallest when you're standing at the bottom.

 

Cheers mate ~ I suppose we all have to start somewhere :thumbsup:

Link to comment
Share on other sites

As for forums, I believe there is a section on TheSwamp.org for C, C++ etc.. Some great minds on that site.. I feel like a complete amateur.

 

I agree. The best of the best AutoCAD programmers reside at the Swamp. Even Kean Walmsley (of Through the Interface fame) and Tony Tanzillo (of “supreme AutoCAD developer but brutally frank critic” fame) will routinely stop by. If anyone is planning on customizing AutoCAD then http://www.theswamp.org should definitely be one of their bookmarks. As a matter of fact, it may be one of only a couple resources if using C++.

 

As a side note (made because of the swamp as a notable exception): Has anyone else observed the trend that the further one gets to the “application grade” languages, the less likely it is to find useful answers or examples? The Autodesk’s own ObjectARX forum has about a third of the post sitting there without response.

 

Granted, the more complex the language, the fewer actual coders . . . .but is it more than that? At that “professional” level, programming is a means (perhaps only) of income. Is the willingness to help smothered by the desire to keep the market small?

Link to comment
Share on other sites

Yes, C, C++, C# all sound "the business", but learning them and being proficient in them is most probably a steep upward climb...

 

 

Given you current skills with lisp and math, and general sense of order and cohesion, the “upward climb” will not be so daunting. You’re taking a run at the summit from a base camp already in the rarefied atmosphere.

 

In my estimation, a solid foundation really is the most important part. It’s why I get very uneasy when I hear high school students bemoaning the requirements of higher level math and science. :cry:

Link to comment
Share on other sites

At that “professional” level, programming is a means (perhaps only) of income. Is the willingness to help smothered by the desire to keep the market small?

 

I've got to admit, I have seen very few examples of programming for AutoCAD in the more advanced programming languages, so that may well be the case.

 

But, in listening to all that has been said, I am a little confused at this point, and it could well be my naivity in this case. I was in conversation with David Bethel (I think it was him!) a while back, talking about "high level" programming languages, and he mentioned that most people do not realise that LISP is actually a high level programming language. Maybe I am misunderstanding something, but I immediately became under the impression that, the higher the level of programming language, the more powerful that language would be. So, where do languages such as C, C# fit in all this - are they "ultra-high" programming languages? Where actually is LISP and Visual LISP in the pecking order?

 

Given you current skills with lisp and math, and general sense of order and cohesion, the “upward climb” will not be so daunting. You’re taking a run at the summit from a base camp already in the rarefied atmosphere.

 

Thanks Sean, I'm glad that you believe that I am capable of achieving such things - I am not quite sure of the complexity of these more powerful programming languages, and so was wondering if I was ready to even take on the challenge of learning one...

 

In my estimation, a solid foundation really is the most important part. It’s why I get very uneasy when I hear high school students bemoaning the requirements of higher level math and science. :cry:

 

This annoys me too. The amount of times I have heard my fellow students through sixth-form, (and even at uni would you believe), say that they "hated maths and science, and couldn't wait to drop it"... but I find that I use a multitude of my maths skills in everyday life (not just because I am doing a maths degree), but in working out my expenses... (obviously our politicians didn't do maths), and in many other things that you would never have thought of... I don't think I could cope without it.

 

Thanks for your insight, and time.

 

Cheers,

 

Lee

Link to comment
Share on other sites

To offer a bit more information upon which to base a programming language choice: all the “C”s, i.e., C, C++, C# as well as Java use similar syntax. Conceivably, learning one makes the process much easier when moving to the next.

 

I’ve heard that C, the granddaddy, is a bit outdated (not Object Oriented) but still has a lot to offer for the really low level* stuff.

 

C++ appears to be the language of choise for the pros as it offers the most potential for optimization, as well as a good foundation for Object Oriented coding methodology.

 

Both Java and C# are similar in how they require a two step compilation process before becoming compatible for any particualr machine. Java is currently multi-platform, but I tend to think C# and the other .NETs will have access to a multi-platform “Virtual Machine” before too long. It sounds like Java C# should be quite easy.

 

 

* With regard to the term “High level” or “Low Level”: It is ambiguous. For instance, C++ could be considered low level because the level of access is at the very bowels (ugh!) of an OS. Those proficient at C++ could be considered high level in that the code could be extremely complex and highly optimized.

 

It does sound like Lisp somehow straddles the fence. Some flavors do allow for standalone code, though I’m not sure to what level of OS access it would have. AutoLisp, I believe, was initially geared towards macro style programming. It’s level of efficiency, and general popularity, was so great that multiple factions continue to do the C++ programming required to provide additional functions not natively exposed. If I had to guess, you’ll be one of those factions before too long.

Link to comment
Share on other sites

Thanks for the clarification, that is very interesting.

 

So, you think that C++ is the way forward then? - if so, what route should I take to learn it?

Link to comment
Share on other sites

If it were me, I'd say, start at the bottom and work your way up. I modified entities using (subst)(entmod)(entupd) for a very long time before I graduated to (vla-put-property).

 

For me, I'm going to crack open my 2-inch tome of C and give it another go. C++ seems like the next step, once I'm comfortable with C and once I re-learn what Object-Oriented programming is. >.>'

Link to comment
Share on other sites

Hi,

 

I made the determination a while ago to learn C++ and I've been swamped in the 6 months since. C++ doesn't just allow you to program for windows, but for any microprocessor you have a compiler for. It's a good hardware control language.

 

That said, my focus in learning C++ lately has been for Acad. I have dabbled in it, started acquiring info and software, but no coding yet. So here is what I propose, lets start a series of threads and from the beginning tackle the things needed to code in C++ for AutoCAD.

 

In the first thread, we would focus on what we need to install in the way of compilers, editors, and other utilities, and how to use them. All questions relating to this topic would be here

 

Next I think we need to learn basics like creating functions, setting variables, and basics

 

Next we would need to learn classes, this is where we would start interfacing with ACAD.

 

I‘m sure several people out there know far more then me about C++ and maybe they could help us plan a syllabus. 6 months from now we’ll all wonder why we waited so long.

 

I’m in and will help in any way I can, as much as time allows.

 

Here to new knowledge and good coding.

Shawndoe

Link to comment
Share on other sites

Hi,

 

I made the determination a while ago to learn C++ and I've been swamped in the 6 months since. C++ doesn't just allow you to program for windows, but for any microprocessor you have a compiler for. It's a good hardware control language.

 

That said, my focus in learning C++ lately has been for Acad. I have dabbled in it, started acquiring info and software, but no coding yet. So here is what I propose, lets start a series of threads and from the beginning tackle the things needed to code in C++ for AutoCAD.

 

In the first thread, we would focus on what we need to install in the way of compilers, editors, and other utilities, and how to use them. All questions relating to this topic would be here

 

Next I think we need to learn basics like creating functions, setting variables, and basics

 

Next we would need to learn classes, this is where we would start interfacing with ACAD.

 

I‘m sure several people out there know far more then me about C++ and maybe they could help us plan a syllabus. 6 months from now we’ll all wonder why we waited so long.

 

I’m in and will help in any way I can, as much as time allows.

 

Here to new knowledge and good coding.

Shawndoe

 

Sounds like a plan Shawn :thumbsup:

Link to comment
Share on other sites

I have seen that link before actually John, but have never really had the time to properly look through it. But thanks for the recommendation - I shall see if I can take a look at it some time. :thumbsup:

Link to comment
Share on other sites

Learn Scheme; It is another high level language like Lisp, but with this book you will start to understand the basics. Once you grasp the basic programing concepts you can move on to a lower level language like C++ where you have more control.

 

[ http://mitpress.mit.edu/sicp/full-text/book/book.html ]

 

O.O

 

... very nice. I'm going to have my nose glued to my monitor for a week.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...