Best Programming Language for a Smart Teenager

AI Thread Summary
The discussion centers on the best programming language for a 14-year-old beginner. While the original poster considered teaching C++ due to its procedural programming aspects, many participants advocate for Python as a more suitable choice for beginners. Python's simplicity and ease of use are highlighted, making it less intimidating and more engaging for new learners. Some participants mention their own experiences with programming languages, emphasizing that while C++ is powerful, it can be overly complex for beginners. Others suggest alternatives like BASIC or Pascal, but Python remains the most recommended due to its wide applicability and supportive community. The conversation also touches on the importance of keeping programming simple and practical, especially for beginners, and the potential pitfalls of more complex languages like C++. Ultimately, the consensus leans towards starting with Python to foster a positive learning experience in programming.
yungman
Messages
5,741
Reaction score
294
OK, since you guys are just talking amount yourselves, I want to ask a question about learning C++. I really want to expose my grand daughter to programming. She's 14 only. I was going to learn Python and work with her as it's supposed to be easier. But I am thinking, what if I work with her to learn C++, at least the first few chapters only on Procedure programming like learning different variable types, doing some simple if-then else etc. to give her a feel. Would that be too much for my little girl? She's a straight A student taking some advanced classes in grade 9. But I don't want to scare her off either.

The good thing is I am around for her, I have all my notes for her, I already loaded up VS on her computer and I have a few GByte of programs of all the problems I worked on already. I even have the best book on C++...Gaddis. She should have plenty of support.

Let me know what you guys think.

thanks
 
Technology news on Phys.org
@yungman I think that Python would be better for your granddaughter at least until she's ready to decide whether she likes programming ##-## as you know, sometimes coding can be tedious -- a language that is sooner to allow meaningful results, without as much environmental overhead up front, may be less likely to alienate a neophyte coder.
 
  • Like
Likes bhobba, PeterDonis, Filip Larsen and 3 others
Thanks guys, after I read Sysprob's reply, I took out the Python for Kids book and took a look, it already talked about drawing on the screen 2/3 into the book that is 1/2" thick! Here I am almost finish the Gaddis (to 870 pages) and still working only in cmd window! I might be interested in Python too!

Thanks
 
  • Like
Likes sysprog
While I know it is considered passe', I still think BASIC is the best place to start. I particularly like the final effort by Kimmeny and Kurtz called True BASIC. It is cheap, easy, and quite powerful. I use it routinely to this day for all manner of problems.
 
  • Like
Likes Tom.G
Dr.D said:
While I know it is considered passe', I still think BASIC is the best place to start. I particularly like the final effort by Kimmeny and Kurtz called True BASIC. It is cheap, easy, and quite powerful. I use it routinely to this day for all manner of problems.
Visual Basic Express is available for free, as is Visual C++, and as is Visual Studio, by which to work with those languages and others, and Python is also available for free.

When John Kemeny et. al. at Dartmouth wrote the original BASIC interpreter, he/they was/were addressing a concern that compiled languages such as FORTRAN required more learning than was really necessary for simple interactive programming.

By the mid '70s, BASIC had been enhanced to extents that allowed it to be used in small-scale business and scientific applications; however, compiled code continued to be more efficient than interpreted code, and that often mattered in large-scale business applications and in scientific applications.

In my opinion, the compiled versus interpreted comparison still matters, e.g. vis-a-vis C++ and Python, and depending on the specific requirements, you could swap in other compiled or interpreted languages.

I think that Python is for most new programmers a better choice than BASIC, and I'm not alone in that opinion, see e.g. https://www.slant.co/versus/110/34559/~python_vs_basic
##-## for web coding, PHP is a good choice, but Ruby on Rails may help with employabilty ##-## the best choice of programming languages is nearly always purpose-dependent.
 
Thanks for all your opinion, I talked to her more, she actually worked through 40 pages of the Python for kids which for a thin book, that's is like 1/6 of the book already. She doesn't have any problem and she never really elaborate to me. I thought she only read through a few pages, but she actually went to Python.org to download the IDE and work on it already.

So Python it is and I am a happy grandpa. My little girl! I might have her show me what to do, we'll see how much she learn!
 
  • Like
Likes bhobba, Filip Larsen and sysprog
First of all, thanks for raising this up. I learned c++ during my university ages, but switched c#, java after graduation from university. In the last 5 years, 70% of my programming time is for python (AI and data science). One day, my little girl just played on my macbook and she was interested in the python code I wrote, and I just showed her how to code a 'Hello world', after that she tried every opportunity to ask me for programming.
So, i could like to add one vote for Python.
 
  • Like
Likes jbunniii, berkeman, yungman and 1 other person
I strongly agree that Python is a great choice for a first programming language. It's easy to learn, easy to read and write, has many natural and powerful built-in features (like list comprehension) that older languages lack, and has a pretty much unbeatable ecosystem of libraries/packages, development tools, etc.

Not only that, but it's also used by virtually every professional software developer, so by learning Python you're not wasting time on a pedagogical toy language or one with only niche applicability.

C++ would be an absolutely terrible first language to learn, and I say that as someone who has been a professional C++ developer for nearly 20 years. It is an extremely fiddly language with a very complicated standard library and many error-prone "features" as a result of its C legacy. It is an indispensable language for certain purposes (OS/system programming, embedded software, etc.) but IMO a poor choice for most other purposes.
 
  • Like
Likes Buzz Bloom, lomidrevo, pbuk and 1 other person
jbunniii said:
I strongly agree that Python is a great choice for a first programming language. It's easy to learn, easy to read and write, has many natural and powerful built-in features (like list comprehension) that older languages lack, and has a pretty much unbeatable ecosystem of libraries/packages, development tools, etc.

Not only that, but it's also used by virtually every professional software developer, so by learning Python you're not wasting time on a pedagogical toy language or one with only niche applicability.

C++ would be an absolutely terrible first language to learn, and I say that as someone who has been a professional C++ developer for nearly 20 years. It is an extremely fiddly language with a very complicated standard library and many error-prone "features" as a result of its C legacy. It is an indispensable language for certain purposes (OS/system programming, embedded software, etc.) but IMO a poor choice for most other purposes.
I cannot agree more, I have been studying C++ for close to 6months, almost finish the Gaddis brief version book, I am just starting to feel a little more comfortable. If I were to do it again, I likely pick Python to learn. There is so much twist and turns in C++, that's why I stop after chapter 14 and keep playing with Constructor, Copy Constructor and Assignment operator for over a week just to get a little more comfortable with it in which one is needed in particular case. Just like I keep verifying with your guys whether I got it right in the other post...Also, when and where to put const!

What you explained in the other post are very helpful.

Thanks
 
  • Like
Likes sysprog
  • #10
yungman said:
.Also, when and where to put const!

See Gaddis pp.104-105, 336, 374, 392, 613, 714, 717 and 817-824.
 
  • Like
Likes sysprog and yungman
  • #11
A possible area of contention in a software house in which everyone is coding in assembly language is that a programmer might want to have his own maclib (macroinstruction library) that might be incompatible at a parameter block level with something that was written by another programmer ##-##

It seems to me that sometimes management wants programmers to be co-interchangable, while conversely, programmers may want themselves to be individually absolutely indispensable ##-##

C++, with its typing that I would like to call 'strict but violable', both the strictness of which and laxity-of-enforcement of which can be helpful to programmers who want to interchange program objects, is an extremely powerful computer language that has allowed much collaboration.

The Python language, with its absence of types, allows programmers to write 'one-off' programs without worrying about too many rules.

Here's a link to an article that I think is rather good: https://www.fluentcpp.com/2017/03/31/how-typed-cpp-is-and-why-it-matters/
 
  • #13
sysprog said:
programmers may want themselves to be individually absolutely indispensable
Job security. :wink:
 
  • #14
I really like Python and find the formatting and syntax to be much easier than C or Java, less verbose.
 
  • Like
Likes bhobba and sysprog
  • #15
How big the piece of pie for firmware programming? Seems like nobody here talk about it. In my line of work in quite a few companies, C++ seems to be the go to language all these years. And that had a lot to do with my decision of learning C++. It's like that's supposed to be it.

We did have a lot of speed and timing concern in firmware, assembly is not out of the question. In the 90s, I came up with an idea of continuous measuring the time by sampling two pure sine wave 90deg difference in phase to get accuracy to about 10pS (10EE-11 sec). The company director personally wrote the firmware to run my hardware. Talk about time critical. I think he did it with C++.

funny my director's background is PhD in physics, but I trust him writing any program more so than anyone else. I am not even sure he knew about OOP , class overloading and all that. I have to ask him one day. But he is the BEST programmer of the company and bar none. That project was so critical we ended up working together to complete the project. He even tested the whole thing on the system to prove the performance.

I can imagine anyone that know hardware(limiting to digital) and programming will not have problem finding a job and get high pay in silicon valley. It is so hard to find someone that can program, then able to look at the schematic and scope probe the signal to trouble shoot the program.
 
  • #16
yungman said:
How big the piece of pie for firmware programming? Seems like nobody here talk about it.
I think that it's not impossible for a beginning programmer to learn firmware programming before learning things that may be less difficult, but I also think that firmware that is not hardwired may perhaps be best written in microcode, and that we should please recognize that doing or explaining things at such levels is not especially easy.
 
  • #18
sysprog said:
I think that it's not impossible for a beginning programmer to learn firmware programming before learning things that may be less difficult, but I also think that firmware that is not hardwired may perhaps be best written in microcode, and that we should please recognize that doing or explaining things at such levels is not especially easy.
Ha ha, at the time, I learn about 8085 assembly programming for like half a year and started doing test programs and fixing the prototype pcb. I think if you know a bit of both, people can be a lot more acceptable for young and inexperienced ones. It's hard to find people that knows both. Of cause, I was a lot younger, just look at me, half a year still struggling with C++.

Just a few years ago after I retired, I was talking to someone in the gym while we were working out, he happened to be a very high up manager in Lockheed, I was describing I had to fix the FPGA programs because those programmers don't know hardware and program the FPGA like programming, that run line by line. FPGA have all signal running in parallel, not serial. I had to go in and fix them...He offered me a job right on the spot! No interview or anything! Of cause I decline, I don't want to deal with firmware, I have better jobs if I want to. But there goes to show having people that know both is hard to find and companies might be a lot more forgiving when hiring.
 
  • Like
Likes sysprog
  • #19
As a professional programmer of over 30 years experience, mostly at the senior programmer/team leader level, as you get more and more experience you will find KISS (Keep It Simple Stupid) almost mandatory. Since retiring I do not program much - I got sick and tired of it over the years. But when I do here is my strategy. I program in Python and always recommend beginner programmers use it. The only issue is speed. If speed is important I isolate the parts of the program that need speeding up and write them in Lua running under LuaJit:
https://brmmm3.github.io/posts/2019/07/28/python_and_lua/

Once you know Python learning Lua is a snap. And if you want even faster speed there is now a version of Lua that compiles to C:
https://nelua.io/

For glueing Neula code it is easy to write some C code that can be called from Python.

Personally I compile my Python using Nukita:
http://nuitka.net/pages/overview.html

But the Lua and compiling stuff is what I would call more advanced tricks - best just to learn straight Python first. I like the Anaconda distribution:
https://www.anaconda.com/products/individual

It has other cool stuff as well you can check out. Have fun.

Thanks
Bill
 
Last edited:
  • Like
  • Informative
Likes hutchphd, yungman and sysprog
  • #20
bhobba said:
As a professional programmer of over 30 years experience, mostly at the senior programmer/team leader level, as you get more and more experience you will find KISS (Keep It Simple Stupid) almost mandatory.
......
Thanks
Bill
I cannot agree with you more. In the academic world, people stress on elegance, how to do it in the more efficient way, going way out of the way to save a few lines of code...or in my case in electronics, to save a few components. Then glorify about doing it in the way that show how much you know. But in real job, it's about getting the job done, easy to maintain. Doing it in the most simple straight forward way as possible.

There's a big disconnect between college and real job. In college, people stress on how "sophisticate" can you do the job. In real world, people stress on how fast you can do the job and how reliable is your program or circuit. Who cares how elegance and sophisticate the theory or knowledge behind what you design! People will hire you that design things by rolling the dice but work 100% of the time, over you with great theory and concept, but hit and miss.

I just finished the chapter on overloading operator for Class. I put in a lot of effort learning and I think I get quite good at it now. BUT, if I were to write a real program, I would avoid those if I can help it. I rather go with simple straight forward codes. I might not have experience in programming, but I have 30 years designing electronics, systems and all, it doen't NOT pay to be "sophisticate".

I was in EE part of this forum in July this year talking about designing Starting at post #11.
https://www.physicsforums.com/threads/what-approach-should-be-used-when-solving-a-circuit.991072/
It got quite heated. Funny I posted the test question similar to what I gave to engineer and technician that came for interview in post #25, that was pretty much straight out of a book used in a trade school only, nothing advanced, so few candidate can even get the right answer. Forget all the advanced theory taught in college. I used to help in EE forum over 10 years ago, but I am too busy and drown now to even go there and look.

Keep it simple, keep it basic and use a lot of common sense.
 
Last edited:
  • Like
Likes bhobba
  • #21
sysprog said:
@yungman I think that you might find this article to be interesting: https://www.informatimago.com/articles/microcode/microcode.html
Yeh, the good old days. I knew the Z80 and 8085 by heart, I can write like 40 line code in machine code without even go to assembly language. That was between 1979 to 83. I so wanted to get into bit-slice design, thankfully I did not, it's nowhere to be found. But still a lot of micro controller using 8088 core before I retired, they just add mux ADC and DACs into one chip. I used to know those read/write/DMA/interrupt cycle timing diagram by heart. Those are just as valid today, just get the datasheet of the processor you need to design with and study it. It gets boring after designing a few.
 
  • #22
bhobba said:
As a professional programmer of over 30 years experience, mostly at the senior programmer/team leader level, as you get more and more experience you will find KISS (Keep It Simple Stupid) almost mandatory. Since retiring I do not program much - I got sick and tired of it over the years. But when I do here is my strategy. I program in Python and always recommend beginner programmers use it. The only issue is speed. If speed is important I isolate the parts of the program that need speeding up and write them in Lua running under LuaJit:
https://brmmm3.github.io/posts/2019/07/28/python_and_lua/

Once you know Python learning Lua is a snap. And if you want even faster speed there is now a version of Lua that compiles to C:
What about Julia? Supposedly as simple and straightforward as Python, as fast as C divided by 2. Only takes a long time for the first run.
 
  • #23
fluidistic said:
What about Julia? Supposedly as simple and straightforward as Python, as fast as C divided by 2. Only takes a long time for the first run.

Sure - but it is not as widely used as Python. Lots of support like Numba that complies a version of Python to LLVM as well. Another interesting language is Moonscript:
https://moonscript.org/

Thanks
Bill
 
  • Informative
Likes fluidistic
  • #24
yungman said:
I just finished the chapter on overloading operator for Class. I put in a lot of effort learning and I think I get quite good at it now. BUT, if I were to write a real program, I would avoid those if I can help it

You do know you have been using an overloaded operator since July 10th or possibly even earlier, right? They might not be entirely as useless as you think.
 
  • #25
Back to the topic at hand:

I think embedded processor program is a red herring. No teenager is going to start there. I expect this is non-controversial.

I also think speed is a very minor issue. I expect this to provoke outrage, but here me out. For most problems, speed is irrelevant. Either the computer is already so fast that the response is instantaneous, or the problem takes so long to solve it isn't worth running it in the first place, or it's in between. I maintain that while speed does benefit the "in-between" class of problems, it's actually quite small, especially when considering the kinds of programs a beginner is likely to write.

People have suggested Python and (a modern) BASIC. Both have their strengths. For learning about computers, either would be a good choice. For learning programming, both languages lend themselves to writing spaghetti code - there sure is a lot of it around in both languages.

Today, for reasons expressed above and elsewhere, I'd recommend Python, even though I personally dislike it. But a lot of people use it, and that means a lot of people can potentially provide help. And you'll need it - Python almost goes out of its way to be different. (I would also argue that duck typing is a classic example of where a week of programming can save you an hour of thinking)

What I would like to recommend instead is Pascal. Understand procedural programming before leaping into OO. I would probably suggest Java after that. While I appreciate Ruby's "principle of least surprise", the larger number of Java programmers sways me. One strength (and weakness) of Java is there is usually only one "right" way to do something, and trying to do it some other way makes it quickly obvious that this is not the best way to go about the problem. From there, C and C++ will make a lot more sense.
 
  • #26
Vanadium 50 said:
(I would also argue that duck typing is a classic example of where a week of programming can save you an hour of thinking)
:headbang:
LOL!
 
  • Like
  • Haha
Likes sysprog and Vanadium 50
  • #27
Vanadium 50 said:
You do know you have been using an overloaded operator since July 10th or possibly even earlier, right? They might not be entirely as useless as you think.
Whatever provided by C++ and compiler are perfectly ok, they must be well debugged, have all the documentation how to use it. There is less confusion. But with custom overloading, you can easily introduce bugs. I learned it first hand how easy to make a mistake and create dangling stuffs and shallow copies and all that.

All the overloading only make what's in main() looks easier, but adding complication in the background like in specification and implementation files. Particular if all are in separate files( that's the point of having those), you have to search up and down to look for bugs.

Instead of going through the trouble to make it easy to write A = B + C where they are of same class, it's better to just write A.x = B.x + C.x; A.y = B.y + C.y. etc. their is no miss understanding of this. So it is one more line in main(), how many lines you have to write in header file and .cpp file to make A = B + C happen?
 
  • #28
yungman said:
Instead of going through the trouble to make it easy to write A = B + C where they are of same class, it's better to just write A.x = B.x + C.x; A.y = B.y + C.y. etc. their is no miss understanding of this. So it is one more line in main(), how many lines you have to write in header file and .cpp file to make A = B + C happen?
This is not one more line in main() if you adhere to a programming style that most organizations would enforce for their developers, and that you said you would honor in the code that you present here at PF.
Furthermore, you would have to write a multiple-line version every time you wanted to add two of these objects, whereas if you had an overloaded operator+(), you would only need to have a few lines of code in one place. Having the code in one place makes it much easier to debug and test.

Your argument here is essentially why bother to write functions at all when you can do the calculations inline in a monolithic main()?
 
  • Like
Likes bhobba and Vanadium 50
  • #29
Mark44 said:
This is not one more line in main() if you adhere to a programming style that most organizations would enforce for their developers, and that you said you would honor in the code that you present here at PF.
Furthermore, you would have to write a multiple-line version every time you wanted to add two of these objects, whereas if you had an overloaded operator+(), you would only need to have a few lines of code in one place. Having the code in one place makes it much easier to debug and test.

Your argument here is essentially why bother to write functions at all when you can do the calculations inline in a monolithic main()?
No, I am all for splitting up program into smaller programs, writing class to perform specific function so one doesn't have to repeat over and over. BUT overloading is another story doing all the extra things and risking all the bugs just to make it "easier" to read in the main().
 
  • #30
yungman said:
No, I am all for splitting up program into smaller programs, writing class to perform specific function so one doesn't have to repeat over and over. BUT overloading is another story doing all the extra things and risking all the bugs just to make it "easier" to read in the main().
Overloading an operator is really nothing more than writing a function. All of the things that you are concerned about with the risk of bugs are things that can happen when you write a function that is buggy.
 
  • Like
Likes bhobba and Vanadium 50
  • #31
It's really funny we hardware people gone through hell speeding up the hardware and the programmer keep saying speed is NOT the problem and keep adding "sophisticate" crap and say it's NOT a problem. I just checked, USB 3.0 is over 1GB/S, and it's getting slower and slower writing and reading from flash drive.

No wonder the stuffs are getting slower and slower as the hardware gets faster and faster.
 
  • #32
yungman said:
I just checked, USB 3.0 is over 1GB/S, and it's getting slower and slower writing and reading from flash drive.

That is the same as saying "my tires are rated at 130 mph, but it still takes me 3 minutes to get to the grocery store and it's only a mile away!"
 
  • Like
Likes pbuk
  • #33
yungman said:
Whatever provided by C++ and compiler are perfectly ok, they must be well debugged, have all the documentation how to use it. There is less confusion. But with custom overloading, you can easily introduce bugs.

Let's examine this. You seem to be saying it's OK for the compiler developers to use overloading, but not for you. I have no trouble with that - nobody needs to use every features. For good and sound reasons, I myself have never used multiple inheritance in production code (but I have used it in testing).

Where I have trouble is where you make the jump from "I don't want to use it myself" to the idea that this is a bad feature of the language and thus nobody should use it. In fact, if it's a bad feature, it should be removed, yes?

Maybe even this wouldn't be so troubling, except you have used this feature in every single piece of code you have posted. How can you be so opposed to a feature you use so much?
 
  • #34
Vanadium 50 said:
Let's examine this. You seem to be saying it's OK for the compiler developers to use overloading, but not for you. I have no trouble with that - nobody needs to use every features. For good and sound reasons, I myself have never used multiple inheritance in production code (but I have used it in testing).

Where I have trouble is where you make the jump from "I don't want to use it myself" to the idea that this is a bad feature of the language and thus nobody should use it. In fact, if it's a bad feature, it should be removed, yes?

Maybe even this wouldn't be so troubling, except you have used this feature in every single piece of code you have posted. How can you be so opposed to a feature you use so much?
Yes, at least chances are they supposed to be the specialist and from one source.

Vanadium 50 said:
That is the same as saying "my tires are rated at 130 mph, but it still takes me 3 minutes to get to the grocery store and it's only a mile away!"
No, it's like we give you a sports car and it takes you 30 minutes to the store instead! You are taking it for joy ride instead of driving directly from point A to B in the name of "sophistication" and "elegance".Case in point, I am copying my C++ files into a USB flash drive, it's been running for over 2 hours already, only 61%, still estimate another 2hours. Look at the speed.

Return twist bar.jpg


Also, how the hell the programs in 4 chapters can be 5GB is size from VS? Those are all example short programs.
 
Last edited:
  • #35
There must be a lot of "baggage" in a Visual Studio project. Here are the various versions of my three-vector program:

Code:
% ls -l threeVec*
-rwxr-xr-x  1 jtbell  staff  28648 Dec  6 00:09 threeVector
-rw-r--r--  1 jtbell  staff   4601 Dec  6 00:08 threeVector.cpp
-rwxr-xr-x  1 jtbell  staff  28128 Dec  5 15:48 threeVector2
-rw-r--r--  1 jtbell  staff   2792 Dec  5 15:48 threeVector2.cpp
-rwxr-xr-x  1 jtbell  staff  28832 Dec 14 10:51 threeVector3
-rw-r--r--  1 jtbell  staff   5544 Dec 14 10:50 threeVector3.cpp
-rwxr-xr-x  1 jtbell  staff  28904 Dec 14 10:55 threeVector4
-rw-r--r--  1 jtbell  staff   5496 Dec 14 10:55 threeVector4.cpp
-rwxr-xr-x  1 jtbell  staff  28960 Dec 15 00:04 threeVector5
-rw-r--r--  1 jtbell  staff   5687 Dec 15 00:04 threeVector5.cpp

Files without an extension are the compiled executable programs. The file sizes are in the middle, before the dates. They're in bytes.
 
  • Like
Likes Vanadium 50
  • #36
yungman said:
how the hell the programs in 4 chapters can be 5GB is size from VS? Those are all example short programs

Visual Studio maintains a .vs subfolder (in same folder as the solution file) with a lot of temporary information generated for code insight and similar which over time eats up a lot of space, so if you have included that in your size measurement I'm not surprised you see 5 GB used. I haven't investigated why, but it sure seems like VS is not really good at reclaiming unused files in that folder so I often end up just deleting that folder from time to time.

Another thing that may influence the size of the executable (not that I think this is what you see with your 5 GB usage) is whether it uses static or dynamic (shared) linking. Default should be dynamic linking which means the executable size is small but then requires the proper DLL's to be present on the path when running the executable, whereas full static linking means big executable but no extra DLL's required at runtime. Real world VS solutions is often a mix of these with standard libraries being dynamically linked and internal project libraries statically linked.
 
  • Like
Likes yungman
  • #37
Vanadium 50 said:
That is the same as saying "my tires are rated at 130 mph, but it still takes me 3 minutes to get to the grocery store and it's only a mile away!"

yungman said:
No, it's like we give you a sports car and it takes you 30 minutes to the store instead! You are taking it for joy ride instead of driving directly from point A to B in the name of "sophistication" and "elegance".

You are missing the point. Transfer rate is not the limiting factor when storing large numbers of small files to a flash drive, in the same way as tire rating is not the limiting factor on a local journey. It has nothing to do with 'sophistication' and 'elegance', the point is that you are trying to do the wrong thing with the wrong tool and complaining that it doesn't work very well.

If you want to save your source files for posterity then just save your source files. Better still, use a source code repository e.g. GitHub.
 
  • Like
Likes Vanadium 50
  • #38
  • #39
Filip Larsen said:
Visual Studio maintains a .vs subfolder (in same folder as the solution file) with a lot of temporary information generated for code insight and similar which over time eats up a lot of space, so if you have included that in your size measurement I'm not surprised you see 5 GB used. I haven't investigated why, but it sure seems like VS is not really good at reclaiming unused files in that folder so I often end up just deleting that folder from time to time.

Another thing that may influence the size of the executable (not that I think this is what you see with your 5 GB usage) is whether it uses static or dynamic (shared) linking. Default should be dynamic linking which means the executable size is small but then requires the proper DLL's to be present on the path when running the executable, whereas full static linking means big executable but no extra DLL's required at runtime. Real world VS solutions is often a mix of these with standard libraries being dynamically linked and internal project libraries statically linked.
Yes, if you just look at the source files, it's very small, a few k's. I can just save the source files, but then if I have to open it, I have to create a new project, copy the source files in before I can open the program. So I have to back up the whole project.

I never few VS is that reliable. Numerous times I had to close the program and re-open it after it behave strangely. I tried Rebuild and Clean Solution, it didn't work. There were times I actually had to restart the computer. But it's no worst compare to all the other stuffs I bought lately.
 
  • #40
pbuk said:
You are missing the point. Transfer rate is not the limiting factor when storing large numbers of small files to a flash drive, in the same way as tire rating is not the limiting factor on a local journey. It has nothing to do with 'sophistication' and 'elegance', the point is that you are trying to do the wrong thing with the wrong tool and complaining that it doesn't work very well.

If you want to save your source files for posterity then just save your source files. Better still, use a source code repository e.g. GitHub.
But it seems like people taking if for granted the hardware is getting faster and faster, then they can add more "features" and say speed is not the problem and keep dreaming up more "elegance" stuffs to add in. for example, all the platform independence programming, you must have extra interface, translations the clutter up the program, making it so big and take so many jumping and calling to get there.

Am I the only one that notice all the response of the computers in cars, tv and other electronics are getting slower and slower and having more issues compare to just 6 years ago? Are the hardware part are getting faster and faster and the final produce is getting slower and slower.

When we bought our 2018 car, the salesman actually warn us that you have to have patience with the control and display. That it takes time for the screen to display, then it takes time to run the joystick to go to the right place. the most sickening thing is if you want to switch from D to R or back, it takes 3 seconds to switch instead instantaneously like my 6 years old of the same brand. try when you want to make a 3 point turn on a busy street, you might get killed because of the delay. You want me to talk about 737 Max jet?

Just bought an 82" Samsung tv, the remote is something else to get to the menu you want, each step takes like 3 to 5 seconds and so many steps to get to what you want to adjust. Compare to my 4 years on 65" Samsung, everything is instantaneously. Same brand, not cheap stuff, 4 years apart only. What went wrong?

Then the printers. I am returning my 7th or 8th all-in-printers in the last 3 to 4 years. The Brother MFC-J805DW did not make it to the 10th print out of a simple word doc without getting into error and print only half a page and stuck! We are forced to keep the Epson EcoTank ET-2720 we bought a month and half ago, it only failed to print 3 times printing word doc. This seems to be a normal thing now a days. I contacted Epson, they send me the instruction to go to control panel and reload the printer! I guess this is the normal thing now, that you are expected to run into problem with brand new hardware.

Then my 2 years old cloth washer, one time, it just started blinking, start and stop and play funny music. I had to unplug and plug back to fix the problem..... then the new DirectTV boxes that we HAD to change because they are going to stop supporting the old ones. The response of the new ones are so slow, every steps is like 5 sec.

I am sure you can find reason for every single case, but the point is why the new stuffs are so slow and unreliable? As a hardware designer, I can assure you hardware is DUMB, they only listen to the programs, we basically just set and reset some bits, taking data and run through DAC to give analog signal, taking in analog signal and use ADC to convert to digital bits and send them back to the software. ALL the problems are most likely from software.

That's why I have a bright idea, why don't people use all the elegance and sophistication to write the programs that WORK and faster.

Do you want to buy something, then expect to spend time to troubleshoot to make it work over and over. Then every time the automatic updating, then things change and have to relearn stuffs again to use it. My wife use the printers for crafts, every time things change, guess who's going to hear about it and have to fix it? I can understand PC need to be update all the time because of security. Why the hell they have to update the printer and everything? It's more like they keep changing for the fun of it and try to make life difficult for users. Even I know how to deal with all these, I DON'T want to. So why not make use of the elegance and make things actually user friendly and reliable?

User friendly is not keep asking " are you sure you want to do this?" everytime you try to do something. The most sickening thing is after asking all the questions, then it still doing it wrong like all the stupid Canon printers.
 
Last edited:
  • #41
George Jones said:
If asked twenty years, I might have recommended Turing for high schools students.

https://en.wikipedia.org/wiki/Turing_(programming_language)

In 1996-97, I taught high school for one year, and this is what was used for the computer programming course that I was assigned.
One of the times my eccentric orbit intersected a university was in the mid'80's ; a first year computer course - taught by the guy who wrote it - used it as a working language. Pretty buggy, at the time.
 
Last edited:
  • #42
yungman said:
Yes, if you just look at the source files, it's very small, a few k's. I can just save the source files, but then if I have to open it, I have to create a new project, copy the source files in before I can open the program. So I have to back up the whole project.

Sound's a bit like you missed my point.

You only need to backup the source files and the solution/project files. If you back up the whole folder that holds your solution file you will (with a default configured solution and projects) also backup the huge .vs subfolder I mentioned and the build folders holding the binary module files and final executable (which you don't need to include in your backup if you are fine with building the solution again from your backup).

But I guess we are straying a bit off topic now, so let's take this in another thread if needed.
 
  • #43
  • #44
sysprog said:
:wink: @yungman post #40 nice rant :wink:
When my big boss go "$hit $hit $hit" up stairs threaten to throw the printer out the window, guess who's the one that has to quietly go fix it? New car spent 2 months in the shop the first 6 or 7 months after we bought it. Yes, I am kind of feeling bitter about it particularly I start learning C++ and see all the elegant things. I am a simple person, I just want my things work and do what I want right away. I don't need a nanny to keep asking me whether I am sure that's what I want. If I hit the button by mistake, I'll pay the price and I learn.

Before, I only know the hardware side of things, I only know the newer stuffs just don't work well and slow. Now that I spent a few months learning hard on programming, I start to see why. Hardware is to the point it's only a tool, like designing a better hammer, better screw drivers and clamps. But someone has to use them to create the piece of art. It's up to that someone to make it work, make it reliable and make it simple for everyone, that people don't have to be IT person to make things work. At least don't give problem in printing a single sided page of word document! Is that too much to ask?

My big boss's computer is only 6 months of so old, latest gen I5 at the time, SSD drive, large memory. It's not a cheap computer, everything of ours are very new. There is no excuse about compatibility. 3 new printers in less than a year! None of them are cheap stuffs.
 
Last edited:
  • #45
yungman said:
I can just save the source files, but then if I have to open it, I have to create a new project, copy the source files in before I can open the program. So I have to back up the whole project.
You're doing it wrong. You don't have to create a new project and copy over the source files. All you need to do is to double-click the .sln (solution) file for the project you want to revise.

Also, if I want to save the files I delete everything but the source code files, the executable, and the files that VS uses to keep track of things ( .sln file, .vcxproj file, and the two other .vcxproj.xxx files). The other files can be deleted, but can be created again if you rebuild the project.
yungman said:
I never few VS is that reliable. Numerous times I had to close the program and re-open it after it behave strangely. I tried Rebuild and Clean Solution, it didn't work. There were times I actually had to restart the computer.
I thought we went over this already a few months ago. The consensus back then was that something was wrong with how you installed VS. After you reinstalled it, it seemed that the problems were over, or at least you didn't mention them any more.
 
Last edited:
  • Like
Likes bhobba, sysprog and Vanadium 50
  • #46
yungman said:
When we bought our 2018 car, the salesman actually warn us that you have to have patience with the control and display. That it takes time for the screen to display, then it takes time to run the joystick to go to the right place. the most sickening thing is if you want to switch from D to R or back, it takes 3 seconds to switch instead instantaneously like my 6 years old of the same brand.
Is this a Mercedes? I remember you saying something about buying that brand. If I had a car that took 3 seconds to shift, I would take it back to the dealer. I'm sure CA has a Lemon Law.
yungman said:
Just bought an 82" Samsung tv, the remote is something else to get to the menu you want, each step takes like 3 to 5 seconds and so many steps to get to what you want to adjust.
Get another remote and see if that makes a difference. If my TV is anything like yours, I almost never use the remote that came with the TV -- I use the remote for my cable service or I use the one for Roku, and they both work like they should.
yungman said:
Then the printers. I am returning my 7th or 8th all-in-printers in the last 3 to 4 years.
Maybe you and/or your wife are especially hard on printers.
yungman said:
Then my 2 years old cloth washer, one time, it just started blinking, start and stop and play funny music.
Ditto on the washing machine.
I would recommend you get a subscription to Consumer Reports, a magazine that does reviews on all kinds of appliances and cars and stuff. It could be that all the things you're complaining about are problems that other people have already found.

As for myself, I don't want cars, refrigerators, TVs, etc. with all the latest technology "doodads." I don't want a car with an "infotainment" system or that I can post stuff on Facebook. The last car I bought, about three months ago, is 18 years old, but the owner's manual tells me its top speed is 177 mph, and I shift the transmission myself.
 
  • #47
yungman said:
I don't need a nanny to keep asking me whether I am sure that's what I want. If I hit the button by mistake, I'll pay the price and I learn.
I'm not so unhappy with the warnings ##-## we don't have them as much on the mainframe, but I have the habit that before I hit the final button on a major cutover, I check myself multiple times ##-##

If what I do is a screwup, it could hurt maybe 30,000 people immediately, and maybe hurt millions not much later ##-##

I do a thinking-walking lap around the computer room ##-## run my regular routine of looking over (and not touching) the hardware ##-## think about things ##-## did anyone tick off the electrician's union recently ##-## did I do a typo somewhere? go back to my desk and check again ##-##

When I'm ready, I look the Operator in the eye, and make sure that he doesn't look worried ##-## then I do another lap ##-## then check the look in the Operator's eyes again ##-## then hit Enter ##-##

I'm responsible for doing or not doing anything that I do or don't do, but hitting Enter is sometimes a big deal, and I'm not especially annoyed by an 'are you sure' check if I'm about to do something that might be irreversible.
 
  • #48
Mark44 said:
Is this a Mercedes? I remember you saying something about buying that brand. If I had a car that took 3 seconds to shift, I would take it back to the dealer. I'm sure CA has a Lemon Law.
Get another remote and see if that makes a difference. If my TV is anything like yours, I almost never use the remote that came with the TV -- I use the remote for my cable service or I use the one for Roku, and they both work like they should.
Maybe you and/or your wife are especially hard on printers.
Ditto on the washing machine.
I would recommend you get a subscription to Consumer Reports, a magazine that does reviews on all kinds of appliances and cars and stuff. It could be that all the things you're complaining about are problems that other people have already found.

As for myself, I don't want cars, refrigerators, TVs, etc. with all the latest technology "doodads." I don't want a car with an "infotainment" system or that I can post stuff on Facebook. The last car I bought, about three months ago, is 18 years old, but the owner's manual tells me its top speed is 177 mph, and I shift the transmission myself.
Yes, it's a Mercedes, I always look at consumer reports for cars. That was a new model, no data. Our older 2003 E was perfect, just old. The 2014 ML is perfect, never have an issue to date, just regular maintenance. Those are their middle model lineup, usually their bread and butter and they usually make them more reliable. Nope, the last one was a bomb and later CR came out to confirm that. All electronic problems. You look at new cars, most of the problems are electronics. I thought I was wise to even ordered one that has the most basic option and no self steering.( that's to me the most important). The kicker is the 6 years old ML has almost everything the new car has, just much faster in everything and no bugs.

Yes, I don't want any latest technologies, the washer was not supposed to have that until a few weeks ago, all of a sudden, things start blinking and making strange noise. I did not know that stupid thing has a computer!

Funny, I have good luck with HP laptops, been buying HP for years. Yes, most of the problem is from my big boss...BUT you know how it works, the boss has a problem, it quickly becomes YOUR problem. She does crafts, printing on different sizes cards and all. I can live with the Canon printer, but I can't live with everyday a printer might come flying out the window. But I have to say, it's really not her problem. Those printers are just not consistent. She is very methodical, she actually write down instructions how to do things in printing. But the stupid printer keep changing whenever there's an update.

As for the tv, I think the remote is ok, it's when I enter something, a lot of times I can see the tv screen has a "thinking" sign like a thing going around in little circle telling you it's trying to load something. It's the tv. Then the new "smart" tv is like the computer with a mouse, you have to navigate pages to get to what you want. I swear, my 3 years old 65" is a smart tv, it's nothing like that. Same Samsung. Samsung has the best color, our 55" Toshiba seems to be a lot better in the control, but that's 4 to 5 years old, so the new ones might be different. But the color is nothing like Samsung.

BTW, Samsung is NOT reliable, we had an older one that barely lasted 4 years. The 65" is starting to do so funny things, might be at the end of the road. But just the color is so good.

With the smart tv, they should have a mouse and keyboard option, it will be so much easier to live with if I can just hook up even a mouse.
 
  • #49
yungman said:
Yes, most of the problem is from my big boss...
Well, you can't blame the technology if someone is misusing the appliance. Personally, I don't want "smart" anything. I'm smart enough that I can figure out how to operate the thing.
 
  • #50
Mark44 said:
Well, you can't blame the technology if someone is misusing the appliance. Personally, I don't want "smart" anything. I'm smart enough that I can figure out how to operate the thing.
She just use the printer harder than me, but the printers supposed to be able to handle all those, they just can't. She is not doing anything the printers do not claim they can do. Like printing 4X6 cards, envelopes, pictures etc. It's not as if she is pushing those printers. I only print 8X11 bond paper, it still occasionally fails.

Now a day, you really don't have much of a choice but to buy those smart ones. Believe me, we regret dumping away the 20 years old HP all in one. It just worked and worked until it broke down. We should have fixed it. Who knows the new ones are so much worst. If you have older printers and stuffs, KEEP THEM.
 
Back
Top