Hi,
Sorry, not being able to help. On the lookout myself, but not in Southern Germany. I feel your pain, though. WO jobs are hard to come by these days. However: once you get to know the Swing/Hibernate stuff, it isn’t half bad. If you employ clean architecture, good coding style and separation of concerns etc., you can have fun writing Swing/Hibernate code, too. I really like the IoC pattern as well, something that might be worth having in WO.
Why do you say WO doesn’t have it? From https://en.wikipedia.org/wiki/Inversion_of_control:As an example, with traditional programming, the main function of an application might make function calls into a menu library to display a list of available commands and query the user to select one. [2] The library thus would return the chosen option as the value of the function call, and the main function uses this value to execute the associated command. This style was common in text based interfaces. For example, an email client may show a screen with commands to load new mails, answer the current mail, start a new mail, etc., and the program execution would block until the user presses a key to select a command. With inversion of control, on the other hand, the program would be written using a software framework that knows common behavioral and graphical elements, such as windowing systems, menus, controlling the mouse, and so on. The custom code "fills in the blanks" for the framework, such as supplying a table of menu items and registering a code subroutine for each item, but it is the framework that monitors the user's actions and invokes the subroutine when a menu item is selected. In the mail client example, the framework could follow both the keyboard and mouse inputs and call the command invoked by the user by either means, and at the same time monitor the network interface to find out if new messages arrive and refresh the screen when some network activity is detected. The same framework could be used as the skeleton for a spreadsheet program or a text editor. Conversely, the framework knows nothing about Web browsers, spreadsheets or text editors; implementing their functionality takes custom code.
Isn’t this an exact description of how WO and Cocoa frameworks work? WO will instantiate and call your component code, your direct actions, etc, when network clients hit your app. Your EO classes have tons of methods that are called at specific, well defined times, by the framework. You can have delegate objects that provide additional, optional behaviour the framework will call when it decides to. And the framework doesn’t know anything about what you’re doing, people have built all kinds of apps using WO. Same for Cocoa, btw, the framework handles all the user interaction and integration with OS and will call your app when the user chooses a menu item or clicks a button.
Just because those frameworks don’t explicitly have abominations like dependency injection mechanisms, it doesn’t mean they don’t follow the IoC principles.
Regards,
Miguel Arroz
|