I'm not sure if I really have time for this, but there are times that I would like to write customized software to do certain tasks. Perhaps like converting on ASCII file format to another or a program to do simple processing of survey data for educational purposes.
What do you think the best (and I mean simplest) program language for a surveyor to learn? I know back in the DOS days a lot of surveying programs were written in FORTRAN and when I was in college, I did some programming in C language which also worked well for survey computations. However, with Windows, I'm not sure what you would use nowadays.
I remember that some of the earliest programs were written for Apple because at that time Windows would not do trig functions.
Carlson started out in machine code.
Under Win95 I could double click a couple of keys and hit enter and the entire program would splash across the screen and it would then be in write mode. Never could get it to print out the code.
I am not sure if there is a best programming language for survey computations. I imagine all the modern languages can do what you are looking for. I recommend Python if you were thinking of dabbling into programming. I am currently trying to learn it (very slowly). It is a high level programming language and can be used for everything from simple automation of tasks to full programs and web frameworks. ArcGIS, PCI Geomatics, ERDAS Imagine etc. can all be automated using it. I don't know if AutoCAD have taken it on board. I would love to see it being used in Carlson. It has many, many uses...
I am learning it through http://www.codecademy.com&apos ;">www.codecademy.com
I would stay away from the C based languages like C++, C# and Java unless you are really serious about getting into programming. They would all be considered lower level (more difficult) languages. I have dabbled in most of the above languages. Ask if you need anymore info.
Intel still make a really nice Fortran compiler for windows.
They have a version for Unix too
Hi Bow,
my math teacher learned me how to some basic programming 33 yrs ago, I still enjoy it. It adds another tool in your digital box when you find yourself doing a lot of repating tasks in whatever you do on the pc. I went to different languages some basisc dialects, pascal, lisp, ...
When learning something new I mostly started with a good book (The mastering series of Sybex are my favorites), then when writing code I mostly look for a very active programming forum, the ones as active as Surveyorconnect here. You post a question in the evening and within 24 hrs you have a couple of solutions to start with.
some more advice on the languages.
If you stick with Basic, Visual Basic or VBA (Visual Basic for applications) you may as well start programming in Excell, Access or Autocad.
I moved from basic to pascal in the early windows 3.1 years, that was with Delphi (successor of Turbo Pascal). I later moved from Delphi to the open source alternative 'Lazarus Free Pascal' which is an amazing project for Windows, IOs and Unix programmers, (with android support in the pipeline)
some links on the pascal side, Google is your friend for the other options.
http://www.lazarus-ide.org/
the active forum
http://forum.lazarus.freepascal.org/
enjoy & keep us posted about your choices.
Christof.
Bow:
I have had the same thoughts as you about writing my own programs.
A few years ago I have actually written a program to convert a Carlson rw5 to a point stake report.
It was for version 1.67 i think
I used http://justbasic.com/ I found it to pretty easy to use and it is free.
the paid http://www.libertybasic.com/ version is like $60
I hope this helps
CSharp has been my favorite language the past several years. Microsoft has a free version of Visual Studio that makes it very easy to write windows based programs.
I too recommend recommend Python. it is much more "mainstream" and actively developed... but I don't do much code these days, the wheel has been invented by others 🙂
I have written a lot of programs, many hundreds, using visual basic. The most complex was a program to log data at a CORS using the real time data flow from a trimble receiver (RT17). It created both a .dat file and a rinex file, in hourly or daily files. This was used at 5 PA CORS sites until Trimble came out with a better program. At the time I wrote it they only had logst, which had a lot of problems. Before that I used quickbasic in the dos days.
I am still using VB6, even though that is many versions behind. I have tried halfheartdely a few times to upgrade to the newest versions, but have never made the transition, not that it is that difficult, but I would have to "fix" many programs I use frequently. There are a lot of other people who stuck with VB6 as well. I make a lot of use of access databases, and VB6 has quite a bit of capability in that aspect.
I am a big fan of Python for simple scripts to process ASCII files. I haven't found anything else that has the combination of easy to learn and powerful features. I use it with Notepad++ and have also written scripts for web applications. I can send you some examples if you like, as well as a link to some of the web applications I recently created to test out some concepts for converting different file types to STAR*NET input data through a web interface.
If you could send them to me as well that would be great as I am learning Python also and some examples relevant to what I do for a living would be great. Are you using any Python framework for the web stuff like Django or Flask?
I program in C++, for Windows I use https://netbeans.org free IDE, and open source gcc compiler, from within the same IDE I use Qt for graphical user Interface.
For Android I still use C++. For graphical User interface and Bluetooth and Internet connections I use Java and I link these two completely different worlds through JNI (Java Native Interface). 90% of my code is in Native (c++) because of that it runs fast in Android.
Never tried to write for iOS or Linux. I heard a lot of good things about Python.
Most CAD softwares have a "make Macro" function. I would create a macro by recording some simple steps that I need. Then open it up and study the codes for revision.