some of my favorite languages are C++,c#,python, basic,php/html/css and assembly. obsolete or non used
- haskell never used much
- pascal never used much
- fortran never used much , engineers used to use but is probably very outdated
- java – not the best, very slow , is crossplatform , requires large SDK download on windows and linux GUI seems bland and strange.
- verilog – used for fpga application but is not widely mainstream yet
C++
- CodeBlocks IDE- wonderful cross platform even compiled on macOSX.(disable plugins like code completion if it crashes on you) has ability to use split text view to work on multiple source files in one workspace.
- wxwidgets , gtk are very great but qt has managed to make a crossplatform masterpeice for developers including its own IDE.
- Irrlicht best opensource rendering engine very fast, lightwight and portable, easy to build.
- QT- qt has native support for things like opengl / sound / networking and used to be commercial. qt creator is very handy with its own gui designer. makes freelance work easier because of its completeness and portability.
- FLTK – for light weight applications.
- OpenCV for object recognition and Augmented Reality
- tensorflow or CUDA for GPU neural networks
c#
really nice to use, monodevelop and visual studio are both recommended. monodevelop can be tricky to figure out include directory’s and library’s
Python
- great for embedded c++ and c application.
- makes fast gui’s with pygtk ,pywxwidgets and pyqt.
- WxPython- really nice set of examples to study
- pythonGTK
- pyQT
- python is very portable and extensible
web development PHP / SQL was a great start for me.
More Advanced Programming C++
https://www.planet-source-code.com
dont get pulled into the hype about dark themed, for IDE’s its not very good. certain colors can change brinstates , dark makes you tired and hard to remember what you were working on.
asfar as development goes, computers sofar have been make anything you want with them, mindset and dont worry about legalities unless its copyright infringement. which has brought us into the age where opensource has opened up every aspect of public commerce and science. things like hardware controllers and software have mostly all been done years ago and the patents are invalid or based on something that has been done before.the new frontiers are usually based on figuring out how nature does it at smaller and faster scales.
Ways to put convert simple c++ apps and library examples into your program
//to convert a char * to const char
//const char** p = const_cast<const char**>(argv1);
//in qt use toLocal8Bit().data()
const char *argv1[]={“appname”,”-lossy”,fileName.toLocal8Bit().data(),”-o”,webpoutfile.toLocal8Bit().data(),”null”};
const char *argv1[]={“appname”,”in1.bmp”,”in0.bmp”,”null”};
int argc1 = sizeof(argv1) / sizeof(char*) – 1;
rename .cpp file to .h include it then rename main and call to main2(argc1,argv1);
if you want to do batch operations then you’ll need something like this
#include <iostream>
#include <cstring>
#include <vector>
int img2webp(int argc, const char* argv[])
{
for (int i = 0; i < argc; ++i) {
std::cout << ‘[‘ << i << “]: ” << argv[i] << std::endl;
}
return 0;
}
int img2webp_wrapper(char* csv)
{
std::vector<const char*> parts;
const char* part = strtok(csv, “,”);
while (part) {
parts.push_back(part);
part = strtok(nullptr, “,”);
}
return img2webp(parts.size(), parts.data());
}
int main()
{
char csv[] = “test1.png,test2.png”;
img2webp_wrapper(csv);
return 0;
}
also this
#include <iostream>
#include <string>
#include<cstring>
#include <vector>
#include<stdio.h>
using namespace std;
int main() {
//this works
// const char* str1[]= {“test1″,”test2”};
// std::cout << str1[0] << str1[1];
// const char** str = const_cast<const char**>(str1);
//above is oldcode
vector<string> test;
test.push_back(“test1”);
test.push_back(“test2”);
int sized = test.size();
// char* str[test.size()];
char** str = new char*[sized];
cout << “testing \n”;
for (int i=0; i < sized ; i++){
//would like to know how to put test into str and print it
// strcpy(str[i],test[i].c_str());
char *tmp = new char[strlen(test[i].c_str())+1];
//tmp = test[i].c_str();
strcpy(tmp,test[i].c_str());
cout << tmp << “\n”;
str[i] = tmp;
cout << str[i] << “\n”;
}
}