Re: Pro programmer

2019-08-28 Thread Russel Winder via Digitalmars-d-learn
On Wed, 2019-08-28 at 04:46 +, Jani Hur via Digitalmars-d-learn wrote:
> 
[…]
> For Lisp, Clojure (https://clojure.org/) is a strong candidate:
> 
> https://blog.cleancoder.com/uncle-bob/2019/08/22/WhyClojure.html

Common Lisp implementations may still have car, cdr, etc. for backward
compatibility, but I haven't seen any human written/read Lisp code using them
for ages. So that is a bit of a false argument by Bob on that one. Clojure is
fun, but only if you already have to have the JVM and The Java Platform.
Common Lisp implementations have all the needful and do not have the resource
requirements of the JVM, and they have JITs.

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



signature.asc
Description: This is a digitally signed message part


Re: Pro programmer

2019-08-27 Thread Jani Hur via Digitalmars-d-learn

On Tuesday, 27 August 2019 at 16:32:08 UTC, H. S. Teoh wrote:
[..] you want to learn also a very high-level language that 
makes you think on a whole different level: I recommend Haskell 
or Lisp after you learn assembly language.


For Lisp, Clojure (https://clojure.org/) is a strong candidate:

https://blog.cleancoder.com/uncle-bob/2019/08/22/WhyClojure.html


Re: Pro programmer

2019-08-27 Thread H. S. Teoh via Digitalmars-d-learn
On Tue, Aug 27, 2019 at 04:01:03PM +, GreatSam4sure via Digitalmars-d-learn 
wrote:
> On Tuesday, 27 August 2019 at 14:51:07 UTC, Ron Tarrant wrote:
> > On Sunday, 25 August 2019 at 21:30:10 UTC, GreatSam4sure wrote:
> > > If I want to be a pro programmer what language must I start with?
> > 
> > If it's deep understanding you want, start with assembly language.
> > Knowing how things are done down at that level—before all the layers
> > of abstraction are added—will give you an edge over 99% of current
> > coders.

To quote Knuth:

People who are more than casually interested in computers should
have at least some idea of what the underlying hardware is like.
Otherwise the programs they write will be pretty weird. -- D.
Knuth

Learning assembly language will give you an intrinsic understanding of
what actually happens at the machine level, which will guide your
high-level designs later.

But caveat emptor: you don't want to get stuck in the "rut" of thinking
in assembly language, because it can lead to missing the forest for the
trees sometimes.  So to balance that, you want to learn also a very
high-level language that makes you think on a whole different level: I
recommend Haskell or Lisp after you learn assembly language.  They are
very different from "mainstream" imperative languages, but they really
strip away all the frills and lay bare the essentials of algorithms and
computation.  Even if you end up working mainly with an imperative
language later, the experience of learning a functional language like
Haskell or Lisp will help you think about algorithms in a much clearer
and deeper way. You'll be able to identify patterns where others lose
their way in details, and your code will be much better structured and
maintainable.


> > It's the same with basic computer use. Wanna be a true expert user?
> > Get any version of Linux or one of the BSDs and restrict yourself to
> > using just the terminal for about a month.
[...]

Only a month? :-D  I've been doing exactly this for the last 20 years,
and now I don't even dream of using a GUI anymore.  The Unix command
line is far more powerful and expressive, and I can get so much more
done without wasting time switching my hand between the rodent and the
keyboard.  It forces me to learn command-line utilities that don't
require ridiculous amounts of RAM and 40 seconds just to start up, and
that has accelerated my productivity by orders of magnitude.  On top of
that, command-line programs are scriptable, meaning once I know how to
use it, I don't ever have to use it again because I'd write a script to
do it for me.  No more aneurysm-inducing clicking through endless nested
menus and carpal tunnel syndrome; it's automation FTW!  Kill the rodent,
and long live the keyboard! :-P


T

-- 
Public parking: euphemism for paid parking. -- Flora


Re: Pro programmer

2019-08-27 Thread GreatSam4sure via Digitalmars-d-learn

On Tuesday, 27 August 2019 at 14:51:07 UTC, Ron Tarrant wrote:

On Sunday, 25 August 2019 at 21:30:10 UTC, GreatSam4sure wrote:
If I want to be a pro programmer what language must I start 
with?


If it's deep understanding you want, start with assembly 
language. Knowing how things are done down at that level—before 
all the layers of abstraction are added—will give you an edge 
over 99% of current coders.


It's the same with basic computer use. Wanna be a true expert 
user? Get any version of Linux or one of the BSDs and restrict 
yourself to using just the terminal for about a month. You'll 
be amazed at how much you'll learn. It'll also give you a great 
foundation for understanding coding.


And your typing skills will go through the roof.



Thanks a lot. I want to have a deep understanding of programming. 
I will look into your advice





Re: Pro programmer

2019-08-27 Thread GreatSam4sure via Digitalmars-d-learn

On Tuesday, 27 August 2019 at 08:09:40 UTC, Dukc wrote:

On Sunday, 25 August 2019 at 21:30:10 UTC, GreatSam4sure wrote:

[...]


Any general purpose language will do. Basically everything can 
be expressed in any language, through some tasks are very 
cumbersome in tasks they are not designed for.


[...]



Thanks a lot, really appreciate


Re: Pro programmer

2019-08-27 Thread Ron Tarrant via Digitalmars-d-learn

On Sunday, 25 August 2019 at 21:30:10 UTC, GreatSam4sure wrote:
If I want to be a pro programmer what language must I start 
with?


If it's deep understanding you want, start with assembly 
language. Knowing how things are done down at that level—before 
all the layers of abstraction are added—will give you an edge 
over 99% of current coders.


It's the same with basic computer use. Wanna be a true expert 
user? Get any version of Linux or one of the BSDs and restrict 
yourself to using just the terminal for about a month. You'll be 
amazed at how much you'll learn. It'll also give you a great 
foundation for understanding coding.


And your typing skills will go through the roof.


Re: Pro programmer

2019-08-27 Thread Dukc via Digitalmars-d-learn

On Sunday, 25 August 2019 at 21:30:10 UTC, GreatSam4sure wrote:
I am wondering as to what is the starting point of being a pro 
programmer. If I want to be a pro programmer what language must 
I start with?


Any general purpose language will do. Basically everything can be 
expressed in any language, through some tasks are very cumbersome 
in tasks they are not designed for.




Most pro programmer I have heard of are all C and C++ Guru. 
Most of the best guys on this D forum falls into that category.


C and C++ have steep learning curves, and tend to be better for 
professionals than amateurs. That does not mean C/C++ usage is 
what defines a pro. Even php, famous for being simple to learn 
but often hated by professionals, can be used professionally.




I really want to know programming to the core not just tied to 
a language or just at the level of drag and drop or use a 
framework or library.


Don't worry, learn to apply one language in practice and you'll 
usually figure out automatically how to apply any language you 
will learn. Well, sometimes when you transition to a new language 
you should learn new ways to do thing, because the new language 
is better suited for those than your old language.


Famous example is that C programmers that transitioned to C++ or 
Java in the 90's were encouraged to start to thinking in object 
oriented manner. They did not strictly have to, as C++ and Java 
can be used for same programming stye as C, and C can do sort-of 
object-oriented programming, but object-oriented designs were 
(and are) so much easier to implement in the newer languages that 
in practice, object design should be used a lot more now than in 
the 70's.


I will appreciate your help in this matter. I am ready to put 
in hard work. I ready know a little of java, actionscrip 3.0, 
kotlin, D but at the surface level but can use them to write 
app.


But I am concern with matter like how can I write a GUI toolkit 
from the ground up.


Basically, GUI libraries call the operating system API that is 
different for different operating systems.




Re: Pro programmer

2019-08-26 Thread Rémy Mouëza via Digitalmars-d-learn

On Monday, 26 August 2019 at 16:41:05 UTC, GreatSam4sure wrote:
Thanks, is there tutorial on the translation of Java to D. 
Which tools is used?


Pls guide me, I am really interested in translating JavaFX to D


From what I can recall and find on the Internet, the tool used 
was named "tioport". It is only viewable on the old (deprecated) 
dsource.org website. Last activity was in 2007. A runtime 
library, dejavu, was used to emulate the java standard library. A 
port of swt 3.2.1 was done with it. I doubt that it supported D 2.


I cannot find anything fresher than 2007 concerning tioport. The 
DWT project is still active:

- https://code.dlang.org/packages/dwt
- https://github.com/d-widget-toolkit/dwt

I suppose once the first translation was made, the resulting code 
base was maintained incrementally, without resorting to whole 
translation of the SWT code.


Re: Pro programmer

2019-08-26 Thread GreatSam4sure via Digitalmars-d-learn

On Monday, 26 August 2019 at 15:29:47 UTC, Kagamin wrote:

On Monday, 26 August 2019 at 12:02:12 UTC, GreatSam4sure wrote:
I want customizable GUI toolkit like JavaFX and adobe spark 
framework in D.


DWT was translated from java SWT, you can do the same for 
JavaFX, D is heavily based on java and there's an automatic 
translation tool from java to D.


There's no silver bullet to become a pro, you just work and 
gain experience and this experience allows you to reflect on 
coding practices on increasing scale.


Thanks, is there tutorial on the translation of Java to D. Which 
tools is used?


Pls guide me, I am really interested in translating JavaFX to D


Re: Pro programmer

2019-08-26 Thread Kagamin via Digitalmars-d-learn

On Monday, 26 August 2019 at 12:02:12 UTC, GreatSam4sure wrote:
I want customizable GUI toolkit like JavaFX and adobe spark 
framework in D.


DWT was translated from java SWT, you can do the same for JavaFX, 
D is heavily based on java and there's an automatic translation 
tool from java to D.


There's no silver bullet to become a pro, you just work and gain 
experience and this experience allows you to reflect on coding 
practices on increasing scale.


Re: Pro programmer

2019-08-26 Thread GreatSam4sure via Digitalmars-d-learn

On Monday, 26 August 2019 at 08:50:29 UTC, Chris wrote:

On Monday, 26 August 2019 at 06:46:04 UTC, GreatSam4sure wrote:



What is the path of becoming very good at programming? Which 
language will one start with.


Often it's the language that best solves the problem at hand 
for you, but it really depends on what you want to achieve. For 
fast scripting and modelling maybe Python would be a good 
choice. But Python can be a dead end when it comes to 
performance etc. If you want to develop apps for Android/iOS 
you're better off using Java or better still Kotlin (Android) 
and Swift (iOS). You should always decouple the business logic 
of your app from the UI. So you can write code in C/C++ or D 
and later link it to any UI. Anyway, always think of where you 
want to go, e.g. portability / cross-platform and see what best 
suits you. If you wanna go mobile use a language that runs on 
mobile platforms like Android and iOS. If you want to write for 
desktop or server only you have more choices. Unfortunately, 
Android/iOS support for D leaves much to be desired.


I have some real-world situation I want to model but I am at a 
loss as to how to start. For instance, I do one build a GUI 
framework like adobe spark, javafx,etc with minimum dependency 
or no dependency from the ground up.


The lack of easily customizable, platform native GUI in D is a 
real concern to me but I don't have the expertise to do it.


There is DlangUI: https://github.com/buggins/dlangui Check it 
out. And there are D bindings to other UI frameworks.



Where is the starting point of doing such amazing thing?


The truth of the matter is that you only know after years of 
programming what you need and what you don't need. As you get 
wiser you become less excited about the latest fancy feature of 
language X. Basically all languages have similar core features 
to model the world and solve problems (hash maps, arrays, 
structs, classes etc.) Just start to write programs that solve 
problems and enjoy...



Thanks for your reply





Thanks, I have check dlangui, it is not native go window at 
least. The display is poor and the fonts worse. I can even center 
the window on the screen. We notice the designer for a month now 
no reply. Skinning and theming is an issue too.


I want customizable GUI toolkit like JavaFX and adobe spark 
framework in D.


I just can find any. I don't know to link D code with any GUI if 
not I would have gone with JavaFX or adobe spark


Does, it means being a good programmer does not depend on any 
language? Does it imply being comfortable in any language of 
choice and domain of interest?


Thanks for the reply



Re: Pro programmer

2019-08-26 Thread Chris via Digitalmars-d-learn

On Monday, 26 August 2019 at 06:46:04 UTC, GreatSam4sure wrote:



What is the path of becoming very good at programming? Which 
language will one start with.


Often it's the language that best solves the problem at hand for 
you, but it really depends on what you want to achieve. For fast 
scripting and modelling maybe Python would be a good choice. But 
Python can be a dead end when it comes to performance etc. If you 
want to develop apps for Android/iOS you're better off using Java 
or better still Kotlin (Android) and Swift (iOS). You should 
always decouple the business logic of your app from the UI. So 
you can write code in C/C++ or D and later link it to any UI. 
Anyway, always think of where you want to go, e.g. portability / 
cross-platform and see what best suits you. If you wanna go 
mobile use a language that runs on mobile platforms like Android 
and iOS. If you want to write for desktop or server only you have 
more choices. Unfortunately, Android/iOS support for D leaves 
much to be desired.


I have some real-world situation I want to model but I am at a 
loss as to how to start. For instance, I do one build a GUI 
framework like adobe spark, javafx,etc with minimum dependency 
or no dependency from the ground up.


The lack of easily customizable, platform native GUI in D is a 
real concern to me but I don't have the expertise to do it.


There is DlangUI: https://github.com/buggins/dlangui Check it 
out. And there are D bindings to other UI frameworks.



Where is the starting point of doing such amazing thing?


The truth of the matter is that you only know after years of 
programming what you need and what you don't need. As you get 
wiser you become less excited about the latest fancy feature of 
language X. Basically all languages have similar core features to 
model the world and solve problems (hash maps, arrays, structs, 
classes etc.) Just start to write programs that solve problems 
and enjoy...



Thanks for your reply





Re: Pro programmer

2019-08-26 Thread GreatSam4sure via Digitalmars-d-learn

On Monday, 26 August 2019 at 04:39:39 UTC, Tony wrote:

On Sunday, 25 August 2019 at 21:30:10 UTC, GreatSam4sure wrote:
I am wondering as to what is the starting point of being a pro 
programmer. If I want to be a pro programmer what language 
must I start with?


Most pro programmer I have heard of are all C and C++ Guru. 
Most of the best guys on this D forum falls into that category.


I really want to know programming to the core not just tied to 
a language or just at the level of drag and drop or use a 
framework or library.




I will appreciate your help in this matter. I am ready to put 
in hard work. I ready know a little of java, actionscrip 3.0, 
kotlin, D but at the surface level but can use them to write 
app.


But I am a concern with a matter like how can I write a GUI 
toolkit from the ground up.


When you say "pro programmer" are you referring to someone who 
programs for a living for a company or a "top-notch/very good 
programmer"?



I am referring to a person who has a good understanding of 
programming that he can model any real-world situation. He can 
turn any real-world case to a program.


For instance, I consider Walter, Andrei, etc as a pro programmer 
this platform. They are c and C++ programmer.


What is the path of becoming very good at programming? Which 
language will one start with.


I have some real-world situation I want to model but I am at a 
loss as to how to start. For instance, I do one build a GUI 
framework like adobe spark, javafx,etc with minimum dependency or 
no dependency from the ground up.


The lack of easily customizable, platform native GUI in D is a 
real concern to me but I don't have the expertise to do it.


Where is the starting point of doing such amazing thing?

Thanks for your reply



Re: Pro programmer

2019-08-25 Thread Tony via Digitalmars-d-learn

On Sunday, 25 August 2019 at 21:30:10 UTC, GreatSam4sure wrote:
I am wondering as to what is the starting point of being a pro 
programmer. If I want to be a pro programmer what language must 
I start with?


Most pro programmer I have heard of are all C and C++ Guru. 
Most of the best guys on this D forum falls into that category.


I really want to know programming to the core not just tied to 
a language or just at the level of drag and drop or use a 
framework or library.




I will appreciate your help in this matter. I am ready to put 
in hard work. I ready know a little of java, actionscrip 3.0, 
kotlin, D but at the surface level but can use them to write 
app.


But I am concern with matter like how can I write a GUI toolkit 
from the ground up.


When you say "pro programmer" are you referring to someone who 
programs for a living for a company, or a "top notch/very good 
programmer" ?


Pro programmer

2019-08-25 Thread GreatSam4sure via Digitalmars-d-learn
I am wondering as to what is the starting point of being a pro 
programmer. If I want to be a pro programmer what language must I 
start with?


Most pro programmer I have heard of are all C and C++ Guru. Most 
of the best guys on this D forum falls into that category.


I really want to know programming to the core not just tied to a 
language or just at the level of drag and drop or use a framework 
or library.




I will appreciate your help in this matter. I am ready to put in 
hard work. I ready know a little of java, actionscrip 3.0, 
kotlin, D but at the surface level but can use them to write app.


But I am concern with matter like how can I write a GUI toolkit 
from the ground up.