August 01, 2019
On Thursday, 1 August 2019 at 15:42:08 UTC, a11e99z wrote:
> On Thursday, 1 August 2019 at 15:17:11 UTC, a11e99z wrote:
>> [...]
>
> imo better choice is (with criteria to find best job)
> - Qt:
>     C++ with any library that u need in one style
> - C#:
>     web, graphics, mobiles, command tools with nice language.
> - Java/Kotlin:
>     same as C# but in top-3. C# is top-5 with more comfort language than Java. Kotlin same comfort as C#, but JVM (Virtual Machine of Java and Kotlin) still does not support value types, that is sucks.
> - JavaScript/TypeScript:
>     web-browser language with node.js that allows to program server side too.
> - You can try Python too.
>     another dynamic language (as JavaScript). I don't like langs that based on space/tabs so I can not say anything about it.
>
> [...]

Right now, job is not a good criteria for me. I work in a not related field and I doubt I would get any job working with CS. That would be great, but I doubt it anyway, so it is more a hobby thing.
August 01, 2019
On Thursday, 1 August 2019 at 16:23:51 UTC, Alexandre wrote:
> On Thursday, 1 August 2019 at 15:42:08 UTC, a11e99z wrote:
>> On Thursday, 1 August 2019 at 15:17:11 UTC, a11e99z wrote:


> Right now, job is not a good criteria for me. I work in a not related field and I doubt I would get any job working with CS. That would be great, but I doubt it anyway, so it is more a hobby thing.

If penetrating a job segment-market is not a requirement, perhaps you would take pleasure in learning F*. It is a pure functional programming language based on logical-mathematical thought. It meant to be a replacement for Coq, a proof-assistant turned into general-purpose language.

In my opinion, this kind of paradigm would fit quite well in the near-future RISCV technological and commercial market since their technical specifications have been feature-ready.

Here is the official tutorial for F* language:
https://www.fstar-lang.org/tutorial/

I hope this kind of project is the last step before entering the realm of quantum programming because it is time to embrace the change.
Quantum mechanics are known since the 1930's, quantum physics since 50's, quantum information since 70's, quantum computation since 2000's. What are we waiting for quantum programming? Again the same and always pathological syndromes remain: "not invented here" and "it's if not broken, don't fix it."

But don't fool yourself, D is not for beginners. Ali Çehreli is a very skilled programmer, ergo, he can't reason like a new/starting programmer anymore, regardless of his patience and kindness.

August 01, 2019
On Thu, 2019-08-01 at 14:49 +0000, bachmeier via Digitalmars-d-learn wrote: […]
> There's nothing wrong with Haskell if you want to take a deep dive into pure functional programming. I personally find Haskell to be more of a religion than a programming language. You can learn the same perspective from functional-first languages like Clojure, Scala, Ocaml, and F#.
[…]

Whilst I agree that most "this is the one true programming language" people are quasi-religious, programming languages are not: Haskell is a just a lazy, pure functional programming language, some adherents show quasi-religious fervour, just as some adherents of C++, Java, C, Go, Rust, D, etc. do.

I am not sure about F# (I do not know anything of it), but Clojure, Scala, and OCaml are very different from Haskell for various reasons, cf. lazy vs. eager, pure vs. impure. Haskell is a programming language worth learning for all programmers,along with Lisp, Prolog, and Erlang.

I'll bet (but I have no experimental data, just a hypothesis) that any D programmer that knows Haskell writes better D than a D programmer who doesn't know Haskell.

-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk



August 02, 2019
I have spent the better part of 10 years with C, and it was my first serious language. I would say go with D if you just want to work on higher level projects and forego the low level details to an extent. C is very low level and very unforgiving. The inexperienced will run into things like segmentation faults or other memory errors until they understand how pointers and memory works.

Also, while D has fewer available resources than C does, C is also an entirely different beast. The C standard library is very limited, only providing some very basic functionality. Advanced data structure implementations are not provided by it so you would be forced to either write your own or use a suitable third party library. Contrast this with C++ or D where such things are likely already provided by their standard libraries.

In short, C is generally used to implement a foundation of sorts for higher level programs or other ventures where low level control is a requirement. For example, it is common to implement general purpose libraries for things like compression or encryption in C for performance reasons and also for reusable code. Libraries written in C can generally be used by any language that runs natively, usually through a binding or a translation of the library API.

August 02, 2019
On Wednesday, 31 July 2019 at 22:30:52 UTC, Alexandre wrote:

> My goals:
>
> 1) Improve as a programmer
> 2) Have fun doing programs
>
> That's it basically. I am planning to study all "free" time I have. I am doing basically this since last year.

Are you only considering D and C or just mentioning them in this forum? The interpreted dynamically-typed languages like Python are considered easier to use and have the largest amount of functionality in their libraries.

If it is just down to D or C, then definitely D. C would be at or near the bottom in terms of a language to have fun doing general programming and learning.
August 02, 2019
On Wednesday, 31 July 2019 at 18:38:02 UTC, Alexandre wrote:
> Hi everyone,
>
> I would like an honest opinion.
> I have a beginner level (able to do very small programs) in a few languages  such as python, go, C, guile(scheme) and common lisp. I want to pick a language and go deep with it and focus on only one for at least the next 2 years or so.
>
> Should I go for C and then when I become a better programmer change to D?
> Should I start with D right now?
>
> The reason I am considering starting with C: since I am a beginner, obvious I will need lots of books, tutorials, videos etc. And I believe C would have more resources and maybe a low level to help with programming in general. And, when I need a more powerful language, I would than learn D. Since you know the good and the ugly of the D programming language I wonder, what you would think would be the best to do right now?
>
> Thank you for your help!

It depends what you want to do.

C is a good language for low level, embedded programming. For "higher" level programming like web clients/servers, text processing, programs with graphical user interface then C is just awful because it has fewer built in primitives and libraries. Also with more complicated program C in general requires more boiler plate.

Then we have C++ but in general it has the same problems as I mentioned with C but programming is slightly more convenient as it has classes, exceptions and some more powerful libraries due to templates, operator overloading such things.

D is somewhere in the middle between Java and C++. Syntax is much better and intuitive than C++. Thanks to that it is more inspired by Java, the libraries are in general more convenient to use and cleaner.

I'd say D is a good choice for learning programming as it sits in the high seat of low level and high level. No, other language combines that as good as D I think.

Also if you start with D you can easily go to C++ or Java.

I'd say start with D and then learn C++ because it would be interesting to hear from a person who learn D first, thinks of C++.

August 02, 2019
On Wednesday, 31 July 2019 at 18:38:02 UTC, Alexandre wrote:
>
> Should I go for C and then when I become a better programmer change to D?
> Should I start with D right now?
>

D and C++ (and probably other languages) inherit features of C such as operator precendence, integer promotion, and a few things. So learning these specific points of C will pay dividends.

However, I don't see any other reason - apart from platform support maybe - to bother with C when D is available.


August 02, 2019
On Wednesday, 31 July 2019 at 18:38:02 UTC, Alexandre wrote:
> Should I go for C and then when I become a better programmer change to D?
> Should I start with D right now?

In my oppinion C should have been deprecated about 50 years ago and it's not worth while to learn it if you are not interested in the history of programming or you have to learn it, because you need to maintain software which is allready written in C. But that's my oppinion; others may have a different sight.

I would recommend to start immediately with D (using the book of Ali, which has allready been mentioned). When you've got mastered D you will not have any problems switching to an other language. And you don't need to know everything about D to write programs. For example you do not need to use templates in the beginning. You might find out a strange looking syntax for type conversion "to!string(17)" with this exclamation mark in between, which you can just accept and us as is, without having to understand what it's good for.

I would even go further and state, that learning C first will become a burden instead of a help.



August 02, 2019
On Fri, Aug 2, 2019 at 2:30 PM berni via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:
> ...
> I would even go further and state, that learning C first will
> become a burden instead of a help.
>

Yes, I agree with this. It is same as with C++. Many people starts with C and then learn C++. Which is really not a good idea.
August 02, 2019
On Friday, 2 August 2019 at 12:30:44 UTC, berni wrote:
> On Wednesday, 31 July 2019 at 18:38:02 UTC, Alexandre wrote:
>> [...]
>
> In my oppinion C should have been deprecated about 50 years ago and it's not worth while to learn it if you are not interested in the history of programming or you have to learn it, because you need to maintain software which is allready written in C. But that's my oppinion; others may have a different sight.
>
> [...]

Could you elaborate more about C being a burden? I have read so many people saying C gives a great foundation and should be everyone's first language. Now I am confused.