Criteria you'd use to pick a tool

I was researching and answering as a Java Developer. Following to the abilities you want to discuss: Java has them ALL.

  1. A language that works cross platform (desktop and mobile)

Java is the most Cross Platform Language on the Market.

  1. Allows use of declares since no language will have 100% customization of all methods and controls

allows.

  1. Can create dll’s, so, etc.

Can create DLL with Ahead of time compiler

  1. Allows implementation of future libraries. An example is the Vulkan graphics library has been created for quite a while, and has not been converted to many other languages. Should conversion be needed?

every Java Library can be implemented, every C/C++ Lib can be wrapped

  1. Drag-and-drop control interface.

Java Swing and JavaFX both supporting Drag and Drop

  1. Allow mostly full control customization from IDE

Customization of all of the IDE is extremely flexible more than for all other Languages

  1. Allow use of interrupts

Java allows it

  1. multi core, processor execution

Threading works like a charm with Java

  1. The structure of the language will need to be simple

Java is simple

  1. Have a context-sensitive online/offline help system

All IDE have it (IntelliJIdea, Netbeans, Eclipse)

  1. Have an intellisense system to complete commands at the current location

All IDE have it

  1. Allow easier implementation with Microsoft’s Component Object Model (COM)

Works with Java without problems.

  1. Have the code allowed to be modified by contributors, while maintaining a ‘gatekeeper’. An example is someone can create code for the language and the ‘language gatekeeper’ will be allowed to check and implement the code or run tests and show that the code is ‘too buggy’. No individual person or team can create all the code needed for the many applications in the wild anymore.

Java and JavaFX are Open Source

  1. Have a high speed-of-execution.

Java reaches the Speed of Execution of C++ and is highly optimized

  1. The ability to execute machine code

Depends: do you want to load the machine Code at startup or dynamically within runtime, for both you’ll find Java libraries

  1. The language should be verbose and human-readable

It is a point to discuss: Java is human readable if Xojo Code is. And Xojo Code is. You should take out this question more precise to make it more directed for me to answer.

  1. Once an internal method has been created, it is not deprecated. Overloading can be implemented.

One of the Java Specialities

  1. Will create native executables (eg: .exe on Windows, etc)

With Ahead of Time Compiler Java can compile native executables.

  1. Allowed to create websites which execute programs quickly. No long delays between starting and loading webpages

Using Java and Wicket or Java and Play or Java and Vaadin makes this more then possible. Fast and reliable. Google GWT generates Javascript and is even more performant.

  1. The language can be implemented to control other languages (example: VBA in Excel, Word, etc.)

Java can be implemented in every situation you want to implement. Also there are ways for implementation of Python and PHP.

  1. Ability to report bugs, and 1) contribute to make the code work, or 2) allow the database to record and keep the data for fixing/reporting bugs

Both is given with Java.

  1. Uses 32 and 64 bit programming (There is soooo much code for 32-bit programming that is used and can be converted to 64-bit, and this can’t be ignored.)

Depends on what you are doing.

  1. Easy to install the IDE (doesn’t need to install 15 supporting libraries/programs to be installed)

Installing JFormdesigner, IntelliJIdea and Java JDK. ready.

  1. Easy to install the final completed program (possibly an internal innosetup-ish-like program?)

In both Cases, ahead of time and Compiled with Runtime installation is easy on all platforms. Using jar Files is even more easy cause they are Platform independent.

  1. Have one large line of code that can be saved in text (similar to the VB6-type code). Having multiple areas of code (press pushbutton action event will only show code in the action event is poor in my personal opinion)

Depends on the settings of the IDE and has nothing to do with the Language itself.

  1. Debugging data shown in hexadecimal format.

If you want you can get it.

  1. The development team will need to use each of the operating systems (creating the language on one operating system and porting it to others has MANY issues for native OS users)

We are developing with MacOS, Linux and Windows Systems from all platforms for all platforms. With simple jar Files the programs are running on all platforms as is. No issues no effort no timeless.

  1. Low startup time for the IDE (not waiting 2 minutes to load a large program)

IntelliJIdea needs for Startup on macOS on M1 MacBook Air 10 seconds.

  1. Allow updates to the program, as updates to the IDE/programming language can break existing code

Java allows Updating of the Applications. I had in the last 20 years only a few changes which even made changes in application code affordable.

  1. Ability to support/create plugins

Load every Lib and Plugin you find.

  1. Allows code to be organized, and clearly maintained (Ability to make modules, classes, etc)

Java delivers this on Delight. Better is not really possible.

  1. Did I say backward compatibility yet? If I did, its worth saying it twice :slight_smile:

My Database Application for Patient Management for a Hospital division is written in Java 15 and backward compatible to Java 11. Changing 5 Lines of Code made it running on Java 8.

  1. Allows creation of reports

Jasper Reports are genius

  1. Allows the ability to use creation templates for making programs (possibly wizards or making custom templates)

Possible and used in my Software Development every day.

  1. Code highlighting and syntax colouring

All IDE have it (IntelliJIdea, Netbeans and Eclipse)

  1. Low memory and size of final program

My Autorouter has a size of 6 MB.

  1. Must execute graphics fast

Java Graphics System is fast and furious

  1. Allow the use of code examples (VB6 still has billions of code examples)

Look on the Java Forums and you will find much more Code examples than for VB6

There is more that I can add, and this is a good start. I hope this helps further the discussion :slight_smile:

1 Like

Exactly: Ask this Questions for Java and you know what will be the answer. Ask it for Xojo and you will also know the answer in front.

This list is the sort of thing I’m thinking of

A CEO / BOD isnt going to be asking for low level technical details like does it compile to a virtual machine vs machine code but wants to know more high level concerns about vendors, long term viability of whatever vendor / tool chain is selected, etc.

This is the sort of considerations I was thinking of (not that I dont appreciate the technical discussions of one tool set vs another)

I would need to know the mission and the team to choose the tool. If the tool will be used by researchers, it can be one, if used to produce administrative software it could be another, etc. A highly trained and proficient team don’t care about drag and drop, but if the team is used to a WYSIWYG drag and drop approach they will offer resistance to change their current tooling, etc.

I would justify based on the best cost/benefit to reach the targets.

I would find a stable vendor with a good track record that have a tool able to satisfy those goals.

The language is chosen because it satisfies the mission. It has versatility, completeness, speed, great support, is stable, backed by a good vendor/team/community, have a great user base and does not show decline, and satisfy all the technical requirements the team wants for the mission for the price the organization is willing to pay.

When putting on my MBA hat, the standard criteria to present to a CEO about a programming tool would be through a typical business plan:

  1. Executive summary - Explain the high-level parts about the language and why it would be used
  2. Company Summary - Who the company is owned by, location, facilities, start-up summary, assets, liabilities and capital, required funding, requirements, etc…
  3. Services - what the program is to offer the company as far as services, and what services the company will need to internally supply
  4. Market Analysis Summary - The target of your market segment, competition, Buying patterns
  5. Strategy and Implementation Summary - what is the competitive edge, what is the marketing strategy, sales strategy, sales forecast, cost of sales, cost of creating program, cost of upgrades.
  6. Personnel Plan - who is going to be hired, added to the team, who is in charge of what (who to blame when something goes wrong), and how to replace them, wages, working from home/office, and what are the management team gaps.
  7. Financial Plan - Break even analysis, monthly revenue break even, estimated monthly fixed costs, average variable costs, projected profit and loss, yearly costs, gross margin, Pro-forma profit and loss (sales, expenses, operating expenses, and net profit), Cash flow, Projected balance sheet, Business ratios (sales growth, percent of total assets, additional ratios, debt, and liquidity values).

That’s a 50,000 foot view for the CEO and the aspects that are likely critical to the C-Suite that will likely be in the meeting. From this information, there will almost always be more questions and information requested from the C-Suite team, which you and your team will need to create answers and defend your information and numbers.

The above is a good start with the ‘hard’ numbers, the other information that they will be looking for is your ability to answer questions under pressure, tone, social intelligence, almost as if you were a salesperson for your company.

As with most questions, the answer is “It depends.”
I would never try and answer such questions as you are asking without knowing first:
What kind of organization are they (Manfacturing? Corporate? Retail? Services? All of these are VERY different!)
What specific applications are they needing?
What platforms do they need the application(s) to run on?
Are they doing server/client or iPhone apps?
Do they already have apps that need updating? What language were they written in?
Do they already have programmers on staff? What languages are they proficient in?

You can’t answer your questions without knowing this first.

As with most questions, the answer is “It depends.”
I would never try and answer such questions as you are asking without knowing first:
What kind of organization are they (Manfacturing? Corporate? Retail? Services? All of these are VERY different

We wrote for all kategories software with java language and would always do it again and that for all platforms

What specific applications are they needing?

Here could be the question of high performance computing and therefore for use of c++

What platforms do they need the application(s) to run on?
Are they doing server/client or iPhone apps?

We can do with java iOS android macOS Linux windows and Webapps without any limitation

Do they already have apps that need updating? What language were they written in?

Most cases c or c++ or anyhow java. In web often php but rewriting for more performance in java is a good idea

Do they already have programmers on staff? What languages are they proficient in?

In 9 of 10 cases c++ or java programmer Skills in all industries

Thorsten, are you having a funny turn or are you just bored? How has this thread turned from Norman asking for some input to you fitting java into everyone’s else’s responses to Norman? I’m totally baffled.

1 Like

Because I’m many discussions people presenting solutions like xojo and others. I could do the same with c++. But I will not write again.

Let me say ciao and that’s it.

Answering q’s under pressure isnt an issue

EDIT : Police Dept board interview
About 12 police officers - and me :slight_smile: asking why you want to join and all kinds of others q’s in a “less than cordial setting” (they want to see how you handle pressure)
Plus an internal investigation when I worked there which was unpleasant
And a couple court appearances as part of my job there

1 Like

Pharmaceuticals and patient care

data entry and customer service ( querying/reporting)

WIndows

Client server - internal use only so no iPad / iPhone / mobile
Possibly web to avoid deployment issues but still only used internally

Yes but no source so we’re literally rewriting

No
Thats why this is a “net new” creation of a “team” - possibly 1 or 2 people - to take these tasks on

discussions about WHICH specific tools/languages to use will be e necessary part of this process

it just wont be part of any discussion/justification to the CEO/BOD level people

I dont expect a lot of deep technical questions at that level, although I have been surprised by them before.

But I do expect a lot of questions that will make me justify whatever choices are made.

Lots of regulatory concerns… software would need robust security s well s extensive audit trail and be validated… Definitely would want a mainstream language fro maintainability and support.

When i worked in the pharmaceutical industry, if I had not been in R&D there is no way I would have done any coding for use at work no matter what I used, and certainly not RB!
-Karen

You know as well as anyone the pluses and minuses of each tool for creating applications for this kind of business, so what SPECIFICALLY do you need from us?

If it were me, I’m always going to sell a new customer on the tools I have the most experience with and I’m most comfortable with, as that’s what I know and have confidence talking about. To the point of likely turning down the work if it HAS to be done with tools I’ve never used.

Now, if it’s open source or something just for me, that’s where I get experimental.
Very likely my next project will be in Blazor as I like the concept of using the same language for front end and back end, and for desktop being able to access the app from any device that has a browser. It’s pretty new, though so I would never consider it for a paid project that I had to put my name on.

Maestro if for example you try to sell to a big automotive company they tell you which language and so on. Also insurance companies will tell you which tools and Language. I saw a few American ways of doing it but they where never that successful like the mainstream ones.

So the problem is that live is much more boring: Coming to big industrial customers they tell you to use Mainstream. Why? To be sure that there will be enough programmers and that the Support is high level.

That is the problem of Delphi / embarcaredo. Many Developers are still using it. But if you look for example in Banking, insurances, Health System or others you may realize: all of them are relying their Software development on Languages like C++ or Java. Why? While there is the needed Support Base, the needed programmers are available and the needed environment is available. Companies like Oracle and also like SAP showing what is going on: Java, C++. Then the world nearly ends.

a. Easy to understand (use) IDE: get ready to use it after some minutes…

b. svn included at the IDE level from version 1

c. Good LR; the text, the examples. The media used to present the information is less important: wiki, application, pdf or html.
Example code in the LR must be drag and drop.
Consistent variables examples thru the LR. If you use file (as OS Reference), you use the same variable name in all examples where you access the mass storage devices.

d. do not include external data into the project file(s): icons, images, sounds stays in user defined service folder(s).

Web = :slight_smile:

If you have internet, almost any device can connect and no worries about goofy OS and hardware problems.

This would likely be intranet only not for external access

I think there are a lot of advantages to using a web interface. It’s how I plan to make my next few apps.
It’s a familiar look and operation to everyone no matter what platform, you can build headless devices, run it on a server or locally and access the UI over LAN or wifi, or even over the internet if desired, no need to create a mobile version, it’s completely cross platform without needing ui tweaks, etc.

1 Like

We write almost all our apps as responsive Progressive Web Apps nowadays that can work offline and online using B4X and BANano. Works as fast and fluent as their native counterparts and is a lot easier to maintain and update.

1 Like