Home   Archive   Permalink



Is there a Rebol job or projects area where I can put up a project I need an expert to develop?

I sincerely need a Rebol expert to help me develop three programs. I don't know what the rules, developer prices and other requirements are. If Rebol has such a programme, I'd love to put up my projects and get d prices a developer would be ready to accept. I want to change my office programs from Visual Basic to Rebol. But it will definitely take me a long time to learn these programs.

posted by:   Joshua       31-Mar-2015/16:59:44-7:00



I can set up an account for you on the Rebol altme world, or you can post to the Red/Rebol chat on SO. Contract Rebolers frequent both places. I came to Rebol from VB, so I know it can be done. :)
    
If you haven't used altme, you can DL it and go to the rebol-gate world to play around (guest:guest).

posted by:   Gregg I       31-Mar-2015/20:01:59-7:00



Hi Joshua,
    
You say you're coming from Visual Basic, so presumably you have (at minimum) something forms-based. Speaking from my own perspective: GUI Rebol development is just "not there right now". It's not cross-platform enough, the apps use buggy non-native widgets are not pleasing to end users, and even Rebol experts have had a really hard time producing usable code for simple UI.
    
The real strengths of the language--for the moment--are its non-GUI aspects. The good parts are aligned with if you are philosophically aligned with the general mission and the "war against complexity". It is an idealistic vs. a practical battle in *most* ways...though with some good exceptions like PARSE.
    
There is a real possibility that if Red keeps a laser focus on use cases it may be able to wrap things into working order for Android development. It may give a missing solution on mobile, that carries forward the good parts of what Rebol2/View did...informed by modern expectations and an embrace of native Android widgets. If you're going to gamble on Rebolish-language GUI in the near term, investing in that is the best bet...though still a long view in the timeline.
    
Quick plug: If you haven't seen the bridging of C++ to Rebol via RenCpp, and linking up closely to Qt, please take a look at it:
    
https://www.youtube.com/watch?v=0exDvv5WEv4
    
I would offer that in certain scenarios, the desire to have a modern cross-platform UI which delegates much of is logic to Rebol (and hopefully not too far off, Red) can be served well by a binding like this to Qt. But that's not the only usage of RenCpp. I'm personally willing to talk to anyone who wants to adapt using that, because I'm looking for more test cases.
    
It really depends on what you're doing, and why. So explaining what your reasons and needs for Rebol would be are important. Especially because the number of Rebol devs is limited, and they are usually involved for philosophical reasons--wanting to "do something cool" goes a long way.
    
But note that as languages on the Internet go, if one has a problem and wants it to get one quickly, asking a StackOverflow question of "how would I do it in Rebol" often gets a quick and thorough answer of someone doing the work for you costs all of $0. You just have to figure out how to run and leverage the clip you are given. So there are people who solve certain problems just for the fun of it.
    
Yet on the flip side, if what you want to do isn't in line with the things people want to be seen done...it can be hard to find someone at any cost. People are busy and doing what they think is important.
    
So is the nature of philosophy... :-)

posted by:   Fork       1-Apr-2015/6:12:28-7:00



I second to what is said above by Fork.
Only I'd like to share my view on UI.
    
Rebol widgets are often criticized because of the default look'n feel but whether it is VID or R3-Gui, it is quite easy to apply another look (colors, icons, ...).
    
Native widgets are best only if you don't need more or different than what is offered by the native widgets.
In my work experience, I had to write new Java Swing components because the ones provided by Java were not enough.
In a Rebol application that displays photo thumbnails, I wanted to add some icons on the thumbnail when the mouse id over it: easy with Rebol but how to do with a native widget?
With a little effort, it is easy to do what you have in lind with Rebol, while using Java for example is more difficult.
Finally, in Rebol also we could have a native widget library/extension (but it doesn't exist as of today).

posted by:   GregP       1-Apr-2015/9:02:24-7:00



Below are some guidelines which I wrote a few years ago to help people organize thoughts when hiring a software developer. Maybe it will help you get the process started:
    
    
No matter who writes the code in your imagined software program, how it gets implemented, what language or development tools are used, etc., there are certain fundamental properties about the proposed software that must be specified before it can be designed, and before any code can be written. Here are a few quick thoughts that will help you specify what you want from a developer, and what their job will be. Clarifying these specifications is the most important part of getting any software development project started. Once you have a specification clarified, it's the programmer's job to write code which does what you want. You need to have these thoughts completed before that can happen:
    
1) Write down what you want your imagined program to accomplish. Describe the environment in which the software will be used, and describe the perspective, experience, and specialized skills of the people who will be using it. The development process used to create a game to improve speech pathology problems experienced by learning disabled children will be very different from one used by real estate agents to determine loan amortizations for new home purchases.
    
2) Start with a detailed definition of what the application should do, in human terms. You won't get anywhere in the design process until you can describe some form of imagined final program. Write down your explanation and flesh out the details of the imaginary program as much as possible. Include as many specific details as possible: what should the program look like, how will the user interact with it, what sort of data will it take in, process, and return, etc.
    
3) Think about how the user will get data into and out of the program. Will the user work with a desktop GUI window, mobile app interface, and/or web page forms that connect to a web server application? Take a pen and paper, and draw out a set of user interface pictures showing how you'd like windows, buttons, text fields, drop-down lists, check boxes, images, menus, etc. to appear on screen. Write a description of what each of those widgets should do when clicked on, filled in, or otherwise activated. Will the program rely on other pieces of data that do not rely on user interaction (timer events, conditions related to the state of a given data sets, etc.). Will the program run in the background and perform operations without any user interaction at all?
    
4) Focus with as much depth and detail as you can upon how the data used in the program will be represented, organized, manipulated, stored and retrieved. What types of data will be involved (text types such as strings, time values, or URLs, binary types such as images and sounds, etc.). Will the data be stored in local files, in a remote database, or just in temporary memory? Make a list of all the pieces of data, and the manipulations to those pieces of data that will be required to run the software.
    
5) Think of how the program will flow from one operation to another. How will pieces of data need to be sorted, grouped and related to one another, what types of conditional operations need to be performed (if the user does ___ or if some state exists, do ___)? Consider everything which is intended to happen in the imagined piece of software, and write a description of how you'd like every detail of each transaction to work. Put into words the process of using your imagined application. Keep your overall goal in mind, but break it down into small detailed steps.
    
6) Think about the other core technologies that your software must interact with. Are there particular file formats, hardware components, or other technologies with which the software must maintain compatibility? Will data be retrieved from other existing files, from legacy software, from existing database systems or spreadsheets, etc? Do you need to work with any particular service provider(s) or with other developers? What software stacks and development tools do they use?
    
Working on your software specifications and requirements is something only you can initiate, but an experienced developer should be able to help simplify and organize the process. A good developer will suggest user interface options and clarify the benefits and drawbacks of all technical design choices. Choosing between a web interface that runs online, and a local app that runs in a window on a local desktop computer, for example, may have significant impact on the development process and technical choices that influence core parts of the software design. Having your hopes and needs defined as clearly as possible, from the beginning, will save an enormous amount of redesign. Either way, it's required from the beginning, before any code can be written.
    
Software virtually never springs to life in any sort of initially finalized form. It typically evolves through multiple revisions, and often develops in directions originally unanticipated. Interfaces change and improve, new data sets are added, and features are conceived with extended use. There's no perfect process to achieve final designs from scratch, but certain approaches typically do prove helpful. Having a plan of attack is what gets a developer started, before writing line 1 of the code, and it's the design process that eventually delivers a working piece of software to your machines.
    
HTH :)

posted by:   Nick       1-Apr-2015/22:12:10-7:00



I responded hurriedly tonight after only briefly glancing through your post earlier today, and then just reread that you already have the apps built in VB. That should provide all the answers to the questions above. Screen shots with descriptions of the user interactions, data manipulations, data sources, etc., provide a great way to get started.

posted by:   Nick       1-Apr-2015/22:17:25-7:00