Guru3D.com Forums

Go Back   Guru3D.com Forums > General > Programming/Html
Programming/Html C++,Visual Basic,HTML,Flash,OpenGL,Modelling,Java.



Reply
 
Thread Tools Display Modes
Old
  (#26)
mbk1969
Ancient Guru
 
mbk1969's Avatar
 
Videocard: GeForce GTX 970
Processor: I7-4930
Mainboard: Asus p9x79
Memory: G Skill RipjawZ, 16GB
Soundcard: Onboard + FiiO E17
PSU: 1000 W
Default 01-22-2015, 15:29 | posts: 3,507 | Location: Moscow, Russia

Quote:
Originally Posted by CJ3D View Post
"breath of fresh air"... so true.
I love programming in c#, clean, powerful, simple, fast.
I honestly hate programming in c++ now, messy, unsafe, low level repetitive nonsense.
Worth to mention TPL (and concurrent generic collections) and LINQ. When I discovered LINQ it was like revelation. What a cool, powerful feature!
Also .Net did great job on WMI-related tasks. If anyone compares C++ sources and C# sources which do the same use of the same WMI classes he just will be surprised.
   
Reply With Quote
 
Old
  (#27)
Tat3
Ancient Guru
 
Tat3's Avatar
 
Videocard: HIS R9 380 4gb
Processor: Intel 6700K
Mainboard: MSI Z170A M5
Memory: HyperX 4*4gb 2666Mhz
Soundcard: UA-55
PSU: Seasonic G650
Default 01-22-2015, 16:13 | posts: 11,487 | Location: Finland

About half year ago at my previous job I was coding C to a microcontroller, that language is old, but definitely has it's place. Good language to start, then go to C++ and then C#/Java. You should see what there is so you appreciate current high level languages and development tools.

I also like writing C# with Visual Studio, it's not about that. It's just that C/C++ is not going anywhere soon and it's definitely nicer to go to a newer language than to the older one.

If you take C# at the start... Perhaps it has too much of everything, C would perhaps be more simple to learn and it's not that I recommend coding it 10 years, then 10 years C++ and then to C#.
   
Reply With Quote
Old
  (#28)
Ouzo
Master Guru
 
Ouzo's Avatar
 
Videocard: MSI 1080Ti Gaming X
Processor: Intel i7 4790K
Mainboard: Asus Maximus VII Hero
Memory: HyperX Beast 16GB, 2133
Soundcard: Focusrite Scarlett 2i2
PSU: Corsair AX 1200W
Default 01-28-2015, 14:05 | posts: 592 | Location: Helsinki, Finland

Quote:
Originally Posted by Tat3 View Post
Why would someone recommend skipping C/C++ and going stright to C#/Java ? Sure it's easier and you get things done faster, but without knowing how things really work. No pointers and addresses ? There are, you just wont see those, same with memory allocation and clearing, you just wont see it.
Related article: http://www.joelonsoftware.com/articl...000000319.html

It's good to know how things work on ground level, in the end, somewhere under C#/Java program there is C/C++ code running at some point. C/C++/C++0x will not go away. Also porting C++ application to other platform is likely easier (Embercadero CPP Builder) than porting C# app to multiple platforms.
I think it's the productivity, "easiness" part.

I personally suggest learning C++ in some point, to really understands what it means when someone writes stuff in higher level(more abstracted) programming languages (especially in game programming). C++11/14 would be very good starting point / co-starting point (but C++ is very complex language for beginner, if compared to C#, imho).

Unity3D (game framework) + C# for absolute beginner would be really nice starting point. It's entertaining, fun, and you keep motivation up, when you constantly see some fun visual things happening when you advance.

When you have some experience under your belt with those, and still motivated to learn more, maybe be more efficient (code execution vice), you could start investigating C++ ( memory management, pointer arithmetic, passing reference vs value, etc).

Last edited by Ouzo; 01-28-2015 at 14:09.
   
Reply With Quote
Old
  (#29)
A2Razor
Master Guru
 
Videocard: ASUS R9 Fury X
Processor: Xeon E5 1650 v3
Mainboard: ASROCK X99 WS
Memory: DDR4 2133 ECC / 64GB
Soundcard: SB ZxR, Logitech Z623
PSU: EVGA SuperNova 1000 P2
Default 12-10-2015, 12:30 | posts: 323

It's an old thread, yet I actually have something to contribute in here.


There's an inherent problem with hiding pointers & references from the user, far as when someone goes to learn their first programming language and jumps in to .NET or Java. Java and .NET have references to objects, used quite a bit, yet just concealed from the user. .NET for instance, high level objects in an array are treated like references inherently. C++ may seem more complicated, but it has a strong bonus of that references and pointers are all explicitly-defined.


What I mean by that, is that it's clear to the user what's a copy and what's a reference. Obviously you can learn the cases where it's implied and stop making those mistakes. But ... the novice programmer that's learning it as their first language has no idea. They usually do something like a shallow copy of an array of objects, then modify one of the arrays and later see some confusing behavior that they can't quite explain ... go back, and "Aha!" that was a reference.


Or, they make a list of objects and find that there's a huge space overhead from pointers internally. But, they have no understanding of the inner workings and what the language is doing because they didn't explicitly do it. It was implied. To me, and it's a personal opinion here mind you. Yet C++ tends to confuse people that I help learn the language alot more than .NET in writing simple software. The end payoff is much better understanding in less time though.


I'd say the great thing of C++ and C is very low ambiguity compared to higher level languages. It's a different form of complexity.

---Concealment may make it look easier, but as soon as the implied behavior isn't what you want... Well, then you're forced to understand it anyway.

Last edited by A2Razor; 12-10-2015 at 12:50.
   
Reply With Quote
 
Old
  (#30)
nurvitx
Newbie
 
Videocard: Onboard
Processor: Intel® CoreTM i5-4570
Mainboard:
Memory:
Soundcard:
PSU: Corsair CP-9020015 750W
Default 01-11-2016, 07:48 | posts: 15

I will recommend to start with plain C in the first place. And then with C# or C++. But first things first. Start with C. You need a solid background before anything...
   
Reply With Quote
Old
  (#31)
Webhiker
Master Guru
 
Webhiker's Avatar
 
Videocard: EVGA GTX 1080 SC Gaming
Processor: AMD Ryzen 7 1800X
Mainboard: Asus Prime X370-PRO
Memory: 32 GB TridentZ DDR4-3200
Soundcard: Realtek® ALC1220
PSU: Zahlman ZM-1000HP
Default 01-16-2016, 17:22 | posts: 246 | Location: Aarhus, Denmark

Quote:
Originally Posted by nurvitx View Post
I will recommend to start with plain C in the first place. And then with C# or C++. But first things first. Start with C. You need a solid background before anything...
I strongly disagree. You don't need to know how a method is implemented to use it. C# is miles ahead of C / C++ when it comes to ease of use (coding itself). C# is also a lot more structured than C. Sure you can overload methods / classes etc. but still C# code is a lot easier to read IMO. I started with pascal then C++ then went to Delphi and I'm now using C#. So I might be a bit biased. I liked the solid rules of pascal and Delphi and I never got to like C++. So far I'm loving C# and it's high level implementation. The class library is enormous, meaning you have ready to go code for almost any situation.
   
Reply With Quote
Old
  (#32)
Glidefan
Don Booze
 
Glidefan's Avatar
 
Videocard: GTX 1070 | 8600M GS
Processor: i7 6700 | C2D T5550
Mainboard: MSI Z170A
Memory: 16GB| 4096MB
Soundcard: SB Z | ALC 888
PSU: Aurora 600w | 90w AC
Default 01-17-2016, 11:12 | posts: 12,304 | Location: Solar System, Earth, Med, Cyprus

Having done C++ in college for a bit, and now using C# in unity, you don't need to have a fundation in C. And when we did C++ in college, no-one required us to do C first.
In any case, you won't go to the deep end of C# from the get go.
   
Reply With Quote
Old
  (#33)
A2Razor
Master Guru
 
Videocard: ASUS R9 Fury X
Processor: Xeon E5 1650 v3
Mainboard: ASROCK X99 WS
Memory: DDR4 2133 ECC / 64GB
Soundcard: SB ZxR, Logitech Z623
PSU: EVGA SuperNova 1000 P2
Default 01-17-2016, 18:55 | posts: 323

Quote:
Originally Posted by Glidefan View Post
Having done C++ in college for a bit, and now using C# in unity, you don't need to have a fundation in C. And when we did C++ in college, no-one required us to do C first.
In any case, you won't go to the deep end of C# from the get go.
This is a fair point of all languages. Even in C/ C++, a beginner usually doesn't deal with things like pointers and references. I suppose it all depends on the person which they like best for general work.

To me, I love object oriented design and thus I gravitate to languages like C++, C#, and Java, avoiding raw 'C' (despite that I like to do inline assembly very-often, which I can do in C++ too). That said, I still to this day consider C# more ambiguous than C++ purely due to implied pointers and shallow vs hard copy, or that the 'new' operator has technically two meanings. I just don't like having anything implied.


EDIT:
Another thing that shouldn't be forgotten about languages is that some languages have different restrictions / implications. In C# and Java for example with on the fly compiling you don't quite have as much control over what the compiler does, whereas with C / C++ this can be explicitly hinted (such as with inlining or compiler-optimization).

-But we're not really talking about which language is better for specific things like real-time programming, and this should have no bearing on the language that a person picks for an application without performance or memory constraint.

For anyone learning programming, my personal advise would be to honestly try several languages. Not only is it fun, but you'll find that once you have a grasp on one language they're all similar (the next language will be far easier to learn).. Broadening your horizons never hurts!


Also, for people learning ---You are not restricted to using just one language in a project. You can write your entire GUI and main program in C# for instance, then call libraries that you build in C or C++ for where you need speed. Sure, there's complexity in interchangeability between languages, but it can be done, and sometimes it's easier in the end.

Just something to keep in mind.

Last edited by A2Razor; 01-17-2016 at 19:10.
   
Reply With Quote
Old
  (#34)
Merlena
Newbie
 
Merlena's Avatar
 
Videocard: EVGA GTX 980 Ti 6GB SC+
Processor: Intel 4790K (Z97)
Mainboard: AsRock Fatal1ty Z97X
Memory: Kingston Beast 2400Mhz
Soundcard: ASUS Xense 7.1 Card
PSU: XFX 850W Gold+
Default 02-15-2016, 16:07 | posts: 43 | Location: Oslo, Norway

Quote:
Originally Posted by A2Razor View Post
This is a fair point of all languages. Even in C/ C++, a beginner usually doesn't deal with things like pointers and references. I suppose it all depends on the person which they like best for general work.

To me, I love object oriented design and thus I gravitate to languages like C++, C#, and Java, avoiding raw 'C' (despite that I like to do inline assembly very-often, which I can do in C++ too). That said, I still to this day consider C# more ambiguous than C++ purely due to implied pointers and shallow vs hard copy, or that the 'new' operator has technically two meanings. I just don't like having anything implied.


EDIT:
Another thing that shouldn't be forgotten about languages is that some languages have different restrictions / implications. In C# and Java for example with on the fly compiling you don't quite have as much control over what the compiler does, whereas with C / C++ this can be explicitly hinted (such as with inlining or compiler-optimization).

-But we're not really talking about which language is better for specific things like real-time programming, and this should have no bearing on the language that a person picks for an application without performance or memory constraint.

For anyone learning programming, my personal advise would be to honestly try several languages. Not only is it fun, but you'll find that once you have a grasp on one language they're all similar (the next language will be far easier to learn).. Broadening your horizons never hurts!


Also, for people learning ---You are not restricted to using just one language in a project. You can write your entire GUI and main program in C# for instance, then call libraries that you build in C or C++ for where you need speed. Sure, there's complexity in interchangeability between languages, but it can be done, and sometimes it's easier in the end.

Just something to keep in mind.
Splendid written. +1 ^
   
Reply With Quote
Old
  (#35)
Rontabs
Newbie
 
Videocard: GTX 850M 4GB
Processor: Intel Core i7-4710HQ
Mainboard:
Memory: 8 GB
Soundcard:
PSU: I'm using a laptop
Default 07-24-2016, 19:15 | posts: 4

I'd learn Python
   
Reply With Quote
Old
  (#36)
vase
Maha Guru
 
vase's Avatar
 
Videocard: -
Processor: -
Mainboard:
Memory:
Soundcard:
PSU: -
Default 08-14-2016, 21:00 | posts: 1,653 | Location: #1 http://www.3dmark.com/fs/8257155

if you want to be able to code a program / app as soon as possible (with soon being a matter of how much time you can invest in the first place) then go for c#.

if you want to LEARN and UNDERSTAND what you are doing (and what c# is doing in that matter) from a more fundamental perspective and after a little longer time than option 1) be also able to code anything you wish to, while being a little more flexible. then learn c++
   
Reply With Quote
Old
  (#37)
edma3d
Newbie
 
Videocard: Asus Strix GTX 1080
Processor: Intel Core i7
Mainboard:
Memory:
Soundcard:
PSU: Asus 600W
Default 11-15-2016, 03:31 | posts: 16

Learn C++ only if you plan to deal with performance critical apps/games. If you plan to develop general business apps, try C#, it will be more productive.
   
Reply With Quote
Old
  (#38)
kevinpham02
Newbie
 
Videocard: 16
Processor: Intel Core i7
Mainboard:
Memory:
Soundcard:
PSU: NA
Default 12-01-2016, 03:15 | posts: 4

You should learn .net (c#), it's easy and you can find job easily
   
Reply With Quote
Old
  (#39)
DroidMan
Newbie
 
Videocard: 2Gb
Processor: Intel Core i3
Mainboard:
Memory:
Soundcard:
PSU: mmm
Default 12-30-2016, 20:47 | posts: 18

Personally I think you should learn C#
   
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump



Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
vBulletin Skin developed by: vBStyles.com
Copyright (c) 2017, All Rights Reserved. The Guru of 3D, the Hardware Guru, and 3D Guru are trademarks owned by Hilbert Hagedoorn.