I chose C++ instead of Python

I have been involved in many real world projects and I honestly don’t see how that could happen soon. Developers get replaced by ridiculously cheap labour from overseas, rather than by LLM’s. Its the opposite, LLM’s are still so limited, that in areas of high tech or anything more complex than a tetris game, the usage LLM’s are getting replaced/ignored more and more. Too much hallucination and bullshit. I personally rather see the bubble bursting. Its a useful tool overall, and its changing the way you develop. Under this aspect, languages like C++ may be more accessible nowadays. But if you trust in it, you are lost.

1 Like

@ScieScie just ignore what the fellas say.

Take Python, learn it, and you’ll do almost anything.
If you then need it, you can pick up a lower abstraction language. But to learn, get python, install pip packages, and you can do basically anything. It’s just so versatile.

These guys are masturbating over what’s better, well the answer is always Python C# with nuget is very versatile too, faster, but I think less versatile. The only thing I care about is horizontal development (how many things you can dev, and Python wins hands down, and It’s easy as fuck)

Need a webb app? Flask python

Need a game? Pygame python

Need a rhino plugin? Python rhinocommon

Need a 3d viewer? Python

Need dxf reader? Python

Need a desktop app? Python

Arduino and domotic? You know the answer already, Python !

Machine learning ? Python…

C# can do almost anything too.

C++ is really reserved for specialized task imo, or if you like pain and suffering, but admittingly I learn with C++ and I learnt strong fundamentals. But again VC++ is almost the same as C# with slightly more overhead.

1 Like

It was a joke.

2 Likes

Hopefully, you’ll stick with programming long enough to realize how ridiculous this discussion is. I doubt there are any regular schools that start with teaching C++. I mean schools (for teenagers) that are planned for couple of years, not courses.

I didn’t notice you mentioned how much time you have to learn. I’m not a true educator (one with a teaching background), but I suspect that if you’re truly curious about C++, you can take your understanding of the subject further by deliberately planning a language change at some point in time. Start with Python, which allows someone with no prior skills to program more than messing around with syntax and all sorts of “side quests.” Once you took some time doing Python and switched to a low-level language, you’ll truly appreciate how much you got “for free”. Only after such mandatory high-level language course will you decide whether to pursue something more low-level. If you find it overwhelming, just return to Python or migrate to another language. Don’t think of it as wasted time! You’re supposed to learn the absolute fundamentals of programming.

Or maybe you just need to distinguish the voices of people who want to make your life easier from those who are sado-masochists and follow those you feel closer to.

1 Like

FWIW, I’m saying that you should learn any language you want, and more when time permits.

Learning more is better. Start with one, but don’t stay with one.

3 Likes

Hello, senior Barden

I have learned Python relatively, but not to the level to be able to create a notable script. Of course, I can add things to simple scripts or change them more or less.

It does mean I am familiar with Python to some extent, but not much.

This doesn’t satisfy me unless I understand Python has a position and ability that C++ has in the various fields.

For example, C++ can program controller system chips, whereas (as far as I know) Python is at the starting point of the way and cannot compete with C++ in this dimension, and this makes me uneasy.

I’m interested in C++ because it is a perfect and pioneer PL and has passed examinations and experiences practically during recent decades. Today, we can see C++ as a unique operator in many systems and applications.

Of course, Python is a capable programming language as well, but I think it is still a teenager compared with the C family, Java, etc. that are the pioneer establishers in the programming world. Python is growing up day after day, but it still needs to fill some of its vacant places in the vast programming scene.

However, as some masters have said, each PL works in a field and for a particular purpose, but I think the C family works comprehensively in every field powerfully. That is why I am interested in learning C, C++, or C# instead of Python, though becoming an expert programmer in those languages is difficult and takes time.

Nevertheless, I have no problem learning Python instead, unless its sensitivity to indentation annoys me often, and its limitation (up to now) in IC programming (controller chips) is an issue to me.

Python is the language I started programming in and I’ll always have a sweet spot for it. It’s straightforward to use, quick to type and thus great for prototyping and scripting.
I still use it frequently in Rhino and Grasshopper with rhinocommon.

print("Hello, World!")

However, C++ is my go-to language nowadays for serious personal projects, but I don’t use it for anything related to Rhino. It’s great for reinventing the wheel though, which I’m into.
It’s much faster than Python, super flexible, there are many, many things to explore, and I like micromanaging in general.
It’s simply fun to have more control over stuff, like where copies happen and how memory is laid out and stuff.
It’s way more cumbersome to use though.

#include <iostream>

int main()
{
    std:cout << "Hello, World\n";
    return 0;
}
1 Like

You are right, and your recommendation is what I believe in, but I want to be sure through consultation, where I am stepping in before I become regretful of wasting my time in an improper way

:slight_smile:

Something that worries me about C++ is the long duration of learning it.

Learning Python is faster and more comfortable.

Now is the time to decide which one to choose, because the consequence of going wrong is wasting time without any results.

I think considering the advice of experienced people is better than falling into a pit. Where they recommend me, I choose Python.

So I have to make the final decision….

Thank you :slight_smile:

Video series on Parametric Camp YouTube channel:
Learning C#: Introduction to Computer Programming for Designers

This channel has other video series relating to Rhino and Grasshopper, including using C# with Grasshopper.

2 Likes

Hello, sir

It is a good teaching resource, but before I fasten my seat belt to fly, I should determine my path and destination.

C# is an excellent programming language regarding its tasks and main goals, but I am told, it is used mostly for web applications, and I’m not interested in web topics.

What I want is a programming language for creating primitive software, plugins, and other small applications. Python can do these very well, but what if I progress in programming in the future and one day I want to produce complex applications?

C++ has attracted my attention as a perfect and all-purpose programming language, but its difficulty and long learning time (to become an expert programmer) warn me.

I am thinking and reviewing the practical experiences of experts to make a wise decision for choosing the most suitable PL that matches my purposes.

The experts here recommend that Python is a good choice for you, but I am not interested in it, especially because its “indentation rule” is annoying (I often forget the rule and get errors).

But what is the solution? I think I will eventually be driven toward Python inevitably.

During these past few days, I have been constantly thinking about what to do. On one side, I am interested in C++ with all its difficulty; on the other side, I am not interested in Python, and it will be a mandatory choice for me.

My central point is not necessarily that C++ is hard, but that its tedious to work with (build process and duration, granularity etc. → longer development cycles). There should be a good reason for writing a C++ application other than personal preference. Again, I can not emphasise it more, pick whatever you like most, but consider that there is good reason for any language. The more you know, the more tools you have to pick from. Why not learn a bit Python, C# and C++. That would give you a rich set of options. Don’t forget to look into bash/powershell and Javascript. In the end they have more in common as you might expect.

In any case its helpful to exit this overwhelmed state you are in. Programming is all about feeling overwhelmed. All the time. I’m in for more than 15 years, and I’m having that feeling. Some beginners tend to believe you can learn programming in a short period of time, but this is not how it works.

1 Like

… ? Where did you get that information?
Also, what is used most doesn’t define what you can use it for.
Unity (program to make videogames) was made with c#. Parts of Rhino was written in c#, most of Grasshopper is c#.
You can do virtually everything with c#, you can make an app that will work without dependencies in Windows (but won’t run on anything that is not Windows).

Visual Studio itself, which is used to program in many programming languages (to create apps from scratch, plugins and more), is written in c# and c++!


This thread is tagged “Rhino Developer” , if that’s the case, imo c# is the best option, you have more advantages than disadvantages from using it instead c++ or python.

But it seems you are talking more generally, not something related to Rhino, so in that case you need to consider any programming language.


Real experience come from real works, products. Objectives and results.
I mostly code c# because my work is grasshopper. But with the experience there I also made some minimal .exe form app in c# with Visual Studio. … but just because I needed that!


Instead of over-thinking which programming language to use, why don’t you plan a small project (a standalone calculator maybe?) and try to do it all by yourself from scratch?
Try with python, c++, c# and then decide what you liked more.

2 Likes

Indeed don’t overthink it. Just start with a language. You can always… branch out.

1 Like

Dear @sciensman,

I am unclear whether your interest is in following a career in programming or having programming as a hobby. If the former, then you should bear in mind that hiring organisations will require particular languages and you will only get hired if your skills match their requirements. Research the sectors where you wish to work and determine what languages are in demand, then learn accordingly. If you plan to enter higher education, look at which languages universities are teaching.

You should understand that learning a programming language is only a small part of learning to program. How you go about structuring a program is more important than the language you write it in. How you document your program so that its intent can be understood by others (or yourself in two years time) is more important than the language you write it in. The whole ecosphere of determining requirements, designing tests, interacting with colleagues, managing releases and so on is more important than the language you write in.

Also, consider that fashions in language change. My first programming language was Fortran, then I learnt Cobol which dominated business system programming for decades. The growing realization of the importance of data led to DBMS and my programming shifted to SQL. Subsequently I have used Pascal, Modula 2, Scheme, Visual Basic, C# and Python. And still people invent new languages, and businesses buy into new languages. So, as others have said, don’t overthink it, get started. And expect to be learning something else within ten years - possibly something that’s not even on the radar today.

3 Likes

Wow, besides myself now I know of three other people in the world that know this one. Not something I’m proud of :slight_smile:

C++, Python, and C# are all excellent choices and used extensively across all different programming domains. If one “feels better” for how you learn, then just go with it.

1 Like

Like they say, “it’s because you’re Wirth it”.:rofl:

1 Like

Thank you, masters, for your fruitful advice and guidance

I downloaded the “VS Code” IDE to start working with C#.

If I had a question, or if I encountered a problem, I would post it here to be answered or resolved.

Some food for thought: Beating the Averages

(and no, LISP is not a good choice for development in Rhino).

1 Like

Hello, senior jesterKing

I could not open the link (timed out).

So let me report what I did:

I installed the “VS Code” IDE to work with C#, but the example codes were not executed, and after clicking on the compile & run button, I received an error that “the code without a project can only be executed with .NET 10+” (of course, I don’t remember the exact message).

After a series of attempts, when I could not understand what to do, I uninstalled the VS Code editor and gave up learning C#.

I went back to C++ again and created my first code by manipulating a prepared (example) code.

I could create a “username-password” program (of course without widgets) :

#include iosream
#include string ………> (I added this string Lib to the original code)

using namespace std;

int main() {

int number;
string name = “Edward”; …….> (added this statement)

cout << “Enter an integer:”;
cin >> number;

if (number != 1123) { ……….. > (added this if)
cout << " incorrect number"<< endl; ……> (added the cout object)
return 0; ……….. > (added return to end the program)
}

if (number == 1123) { …..> (changed the integer)

cout << "your name" << endl; ...> (added these statements)

cin >> name;

}

if (name ==“Edward”) { …..> (added these two statements)

cout << “welcome!” << endl;
}

if ( name!=“Edward”) { ….> (added these two statements)

cout << "The name is not correct" << endl;

}

cout << “This line is always printed.”;

return 0;
}

I also began memorizing the C++ operators, some keywords, and some built-in functions. For now, I ignored memorizing Date & Time functions to lighten my burden.

Of course, I’m at the starting line and could only take these few steps.