flat assembler
Message board for the users of flat assembler.

Index > Heap > Popular programming tools vs best programming tools

Author
Thread Post new topic Reply to topic
OzzY



Joined: 19 Sep 2003
Posts: 1029
Location: Everywhere
OzzY
I was noticing that people don't always pick the BEST tools out there, instead everyone seems to jump in a trend.

For example, people pick Java when Python is clearly more readable. Then they pick C# when Java has about the same potential, but is also cross-platform.

PHP is popular and gets the job done, but Ruby on Rails or Python/Django seems to make programmers more happy.

These days if you want a job in IT you need to use less-than-optimal tools.

Why do you think that happens?
Post 22 Jul 2013, 21:41
View user's profile Send private message Reply with quote
sleepsleep



Joined: 05 Oct 2006
Posts: 8999
Location: ˛                             ⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣Posts: 334455
sleepsleep
best is probably a very difficult, confusing and maybe impossible to define word,

what is best for mr.a might be worst for mr.b,

i think security should be major concern when choosing a tool, platform, framework,
and security required ongoing support,

and all these is possible only when they are using language which is easy, direct, simple, less layers,

maybe there should be a language between asm & c, probably uart777 macro type based.

if security doesnt make into top 1 consideration, all later bug fixes, exploits and etc will just cost more time, more people and wasting almost everything on this planet.
Post 22 Jul 2013, 22:01
View user's profile Send private message Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 822
Location: Jakarta, Indonesia
TmX
OzzY wrote:

For example, people pick Java when Python is clearly more readable.


Most of serious Java users I know work either in banks or telcos. And indeed Java is an established name in these circles. So probably you'd argue why don't these folks switch to Python, since Python is more readable?

Well in reality, how readable the language itself is not always the highest priority. We also want good implementation (compiler/interpreter), 3rd party tools, libraries/frameworks, commercial supports, availablality of coders, etc etc.

As an ecosystem, Java is already mature regarding of the points above . And you don't want to break existing codebase, right?

I'm not really sure about Python ecosystem, though.

P.S: I work on mobile phone apps (BlackBerry & Android) and smart card apps (Java card). I'd love to be able to use Python, but unfortunately my environment is Java-based. Wink
Post 23 Jul 2013, 01:10
View user's profile Send private message Reply with quote
uart777



Joined: 17 Jan 2012
Posts: 369
uart777
Judging by the syntax, I think Euphoria, Python and JavaScript are good languages, but not quite perfect and they are interpreters (Raspberry PI="Python"). Java is somewhat an imitation of C++ that repeats the same mistakes.
Quote:
maybe there should be a language between asm & c, probably uart777 macro type based
Not just ASM & C, FML will also support pure English VB-like names. Example:
Code:
; My preference: All lower.case for
; maximum production...

create f   ; create file
write s, n ; write text to current file
close      ; close file after create
open f     ; reopen
read t, n  ; read to t
say t      ; display text
close      ; close file after open
execute f  ; execute maximize

; Optional Proper.Case naming convention...

Create Filename
Write Data, N
Close
Open Filename
Read Text, N
Say Text
Close
Execute Filename    
Speaking of Java, did you guys know that some ARM CPUs have a Jazelle mode that can execute Java byte-codes in hardware? http://en.wikipedia.org/wiki/Jazelle Raspberry PI supports it (ARM1176JZF-S). Haven't tried it yet. Tomasz's Java class examples provide the JVM opcode macros.


Last edited by uart777 on 23 Jul 2013, 13:40; edited 1 time in total
Post 23 Jul 2013, 11:26
View user's profile Send private message Reply with quote
dogman



Joined: 18 Jul 2013
Posts: 114
dogman
OzzY wrote:
I was noticing that people don't always pick the BEST tools out there, instead everyone seems to jump in a trend.


Most people who write code shouldn't.

OzzY wrote:
For example, people pick Java when Python is clearly more readable. Then they pick C# when Java has about the same potential, but is also cross-platform.


Java and Python have almost nothing in common except they're both scripting languages. I don't think that's a good comparison or a valid question. Java has enterprise features and support that don't exist in Python. Whether you need those benefits depends on your application but to compare those two with no context is senseless even from my very limited knowledge. Picking C# over Java may make sense but OO languages aren't my area. I hear really C# is a better Java. Like you said that is only an option if you're writing Windows-only code. If you don't need stuff to be cross platform, pick the best tool on your target. Nothing new there. Also seems fine to me. Spending the extra effort to make stuff portable only makes sense if it needs to be portable. I know that goes against the current lemming mantra but I don't care. Not everything has to be portable.

OzzY wrote:
PHP is popular and gets the job done, but Ruby on Rails or Python/Django seems to make programmers more happy.


I don't know about the details of those either but in general, you have to use what the guy hired by the people who pay you tells you to use. And he's usually stupid or he would be coding instead of managing. That may be a generalization but I stand by its accuracy Razz Companies that pay for code almost always want it done the cheapest way possible, not the best way possible. That means using free or cheap tools and commodity labor. It doesn't matter to them if their programmers are happy or not, all they care about is how much is it going to cost me to do x and how many people are around who know technology y vs. technology z. Cheap garbage and H1Bs beat tight code and expensive developers in 99.999% of all circumstances.

OzzY wrote:
These days if you want a job in IT you need to use less-than-optimal tools.


There was never a time in IT where that wasn't the case, at least as far back as I know, although there was a time when people who managed programmers at least had written some code. There were software companies who used to find the best guys and pay whatever it took but as far as I know none of those exist anymore. They were all eaten up by the "What can we offshore today?" multinationals.

OzzY wrote:
Why do you think that happens?


Because the world is contaminated with greedy idiots in MBA suits who don't know anything (and don't want to know) about what they're managing. Most people are unqualified and that includes the vast majority of so-called managers and so-called developers. Most software is crap and that includes most of the OS and languages in general use. Put that all together and it's a miracle anything actually works. And almost no companies or people are left that actually take pride in their work and are willing to pay for something better. Cheap wins. GAME OVER GAME OVER GAME OVER GAME OVER GAME OVER Evil or Very Mad
Post 23 Jul 2013, 13:23
View user's profile Send private message Reply with quote
Inagawa



Joined: 24 Mar 2012
Posts: 153
Inagawa
Saying that Java is basically crossplatform C# proves that you have no clue.
Post 23 Jul 2013, 14:49
View user's profile Send private message Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 822
Location: Jakarta, Indonesia
TmX
dogman wrote:
I don't think that's a good comparison or a valid question. Java has enterprise features and support that don't exist in Python.


Then what about Jython?

Very Happy
Post 23 Jul 2013, 16:04
View user's profile Send private message Reply with quote
dogman



Joined: 18 Jul 2013
Posts: 114
dogman
There are a lot of JVM hosted languages. Just because something runs on a JVM doesn't mean it has all the advantages of Java and it very likely doesn't. But even if it fully exploited the JVM nothing on the JVM but Java currently has the ecosystem Java does. You're talking about people adding stuff on top of an engineered platform and all bets are off. A JVM-based application with its own limitations still won't have the robustness of Java. Even stuff that has more support behind it (go, scala etc). aren't as welcomed in industry yet as Java. And I say all this as no fan of Java at all.

I have no idea how good or bad Jython or any of the other hosted stuff is but that doesn't matter. Further, in today's economic and "tech" climate nobody wants to choose an oddball system without a big company behind it. He'll be the first one they fire as soon as anything goes wrong even if it has nothing to do with the technical aspects of what he chose. All they'll say is the guy picked this unknown stuff when he should have just used Java. Nobody wants to rock the boat. And yes that means lots of good stuff never succeeds. Again nothing new here.

The point in answering the OP's question is understanding why companies choose to or to not use something. That's what he asked about and that's what I'm talking about.
Post 23 Jul 2013, 16:33
View user's profile Send private message Reply with quote
OzzY



Joined: 19 Sep 2003
Posts: 1029
Location: Everywhere
OzzY
Maybe I gave bad examples, but the general idea is valid.

For example, we're using x86 architecture when there are known flaws of this architecture and we'd be better with some other architecture.

But we use it because it's POPULAR.

We use C++ when we have D which fix many C++ flaws. But all libraries and popularity and jobs are in C++.

Do you get what I mean with this thread?
Post 23 Jul 2013, 21:40
View user's profile Send private message Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 822
Location: Jakarta, Indonesia
TmX
dogman wrote:
Further, in today's economic and "tech" climate nobody wants to choose an oddball system without a big company behind it.


You are right.
But of course there are always exceptions, e.g:
at one time, Twitter migrated its back-end code from Ruby to Scala

I think most of these oddball system adopters are tech startups. Eventually, as their system reach some performance hits/complexities, usually they will revert to the more mature Java or C++.
Post 23 Jul 2013, 23:19
View user's profile Send private message Reply with quote
TmX



Joined: 02 Mar 2006
Posts: 822
Location: Jakarta, Indonesia
TmX
OzzY wrote:

We use C++ when we have D which fix many C++ flaws.


Again, the issues are mostly not about the language itself, but about the whole ecosystem. C++ may have flaws on it, but it's supported by dozens of compilers, good tools (debuggers/profilers/etc), lots of coders available, etc.

C++ also an ISO-ed language, so you can trust your code will not break soon.

OzzY wrote:

But all libraries and popularity and jobs are in C++.


Not suprising, since C++ existed long enough before D.
In order to attract more people to use D, a killer app/framework in D is seriously needed.

I think Ruby wasn't mainstream enough until Ruby on Rails released to the public. And now, one of the major reasons why people want to learn Ruby is because they want to use Rails. Does D have something like that?
Post 24 Jul 2013, 01:29
View user's profile Send private message Reply with quote
uart777



Joined: 17 Jan 2012
Posts: 369
uart777
Why do people use what's popular? Typical humans are mindless robots, followers who don't want to think for themselves. It's easier to let someone else do the thinking.

Why is McDonalds so popular? Not because of the quality of their food. Their success is due to advertisements, convenience, low price ("Dollar menu"). It has nothing to do with quality. Anyone can make a better tasting hamburger at home.

C does have real flaws. Example: It sends arrays by address, but not structures? A structure IS an array of different sized variables. The result is that -> is needed for pointers to structures. To solve this, C++ introduces references, but you still need & for every structure parameter: void copy_image(IMAGE &a, IMAGE &b); // this becomes painful after about 75,000+ lines
Post 24 Jul 2013, 04:13
View user's profile Send private message Reply with quote
dogman



Joined: 18 Jul 2013
Posts: 114
dogman
OzzY wrote:
Maybe I gave bad examples, but the general idea is valid.

For example, we're using x86 architecture when there are known flaws of this architecture and we'd be better with some other architecture.

But we use it because it's POPULAR.

We use C++ when we have D which fix many C++ flaws. But all libraries and popularity and jobs are in C++.

Do you get what I mean with this thread?


Yes I get what you mean and I tried to explain some of the reasons I have seen that things are like this. You are kind of preaching to the choir since most of the people on this forum are people who love programming and want to be able to do the best work possible with the best tools possible and management interference with those decisions is usually not a positive thing.

In the old days only tech people got involved in software and everybody was more or less competent. Since PCs and the MBA program everybody thinks they know it all even if they never wrote a line of code in their lives. Decisions are most often made by unqualified, disinterested people. And nobody ever got fired for choosing a mainstream, standard technology even if something else would have been far better. Technical decisions need to be pushed down much lower than they usually get made. That doesn't mean IT or the software business should be a playground for developers because there is still a business to run. But the way things have been obviously doesn't work. Probably the single biggest thing they could do to improve software quality and productivity is to make it illegal for any manager in any IT or software company to hold an MBA from an accredited university.


Last edited by dogman on 24 Jul 2013, 11:10; edited 1 time in total
Post 24 Jul 2013, 10:59
View user's profile Send private message Reply with quote
dogman



Joined: 18 Jul 2013
Posts: 114
dogman
TmX wrote:
dogman wrote:
Further, in today's economic and "tech" climate nobody wants to choose an oddball system without a big company behind it.


You are right.
But of course there are always exceptions, e.g:
at one time, Twitter migrated its back-end code from Ruby to Scala

I think most of these oddball system adopters are tech startups. Eventually, as their system reach some performance hits/complexities, usually they will revert to the more mature Java or C++.


I agree, good point. There is a big difference between entrepreneurial (did I spell that right) and other businesses. In the former they are already risk takers thinking big, and they are willing to think outside the box and make decisions based on the best information they have. If they were afraid to fail, they wouldn't be entrepreneurs. On the other hand you have companies who need IT as a service and they really don't care (and they shouldn't have to care) about anything except how much is it going to cost me to do x. What it costs to do x is how much all the software and people cost and how stable and widely used it is. This is not the way IT was always done, but it is how it is done today. That explains their priorities and also the sad state of affairs in IT. IT has gone from being an internal business driver and differentiator to just another cost of business. When the entrepreneurial business reaches a certain growth point they bring in the MBAs and then everything goes to hell in short order.
Post 24 Jul 2013, 11:07
View user's profile Send private message Reply with quote
AsmGuru62



Joined: 28 Jan 2004
Posts: 1412
Location: Toronto, Canada
AsmGuru62
Really? Flaws?
The real flaw would cause the code to break, not work, etc.
What you all cite is inconvenience at best.
So typing an ampersand before the structure is a flaw? Is this a serious argument?
An then instead of a '.' typing '->'?!.. wow! big flaws!
What if you need to pass a copy of a structure on stack and you want the
original one to remain intact?
And the copy of a structure is done with a simple assignment:
Code:
RECT a = {1,2,3,4};
RECT b = a;
    
Post 24 Jul 2013, 13:05
View user's profile Send private message Send e-mail Reply with quote
dogman



Joined: 18 Jul 2013
Posts: 114
dogman
There is a difference between flaws in language design and flaws in programs written in badly-designed languages. C is certainly a badly designed language- if indeed it was designed at all. That does not stop compliant C programs from behaving as expected. I think this is what uart was talking about. I don't think he gave especially good examples but I agree with the overall meaning of his post as I understood it. Some languages are crap and C is at the top of the list! Razz
Post 24 Jul 2013, 16:01
View user's profile Send private message Reply with quote
uart777



Joined: 17 Jan 2012
Posts: 369
uart777
dogman: You have some interesting things to say. Nowadays, people think that knowing how to search Google on an Android phone makes them an expert of computers and they manage to convince everyone of it, including employers.

Guru:
Quote:
So typing an ampersand before the structure is a flaw? Is this a serious argument? An then instead of a '.' typing '->'?!.. wow! big flaws!
Yes, definitely, seriously. After typing 100,000s of lines, one character becomes an issue and I think it's misleading to beginners that C++ reverses the meaning of */&. Structures should be sent by address and that's just one example problem with C.
Post 25 Jul 2013, 04:15
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum


Copyright © 1999-2020, Tomasz Grysztar. Also on YouTube, Twitter.

Website powered by rwasa.