The early interpreted BASICs did make it difficult to write good code. All source editing was line editing, every line was numbered, there weren't any structured control flow statements, composite data structures were limited to arrays and strings...
But even as early as the second half of the 80's there were mainstream implementations of BASIC that addressed all of these. Microsoft QuickBASIC 4 added a full screen editor and then completely relaxed the need for line numbering. Line numbers were still supported, but so were symbolic labels. QB4 also had support for functions/subroutines, decent control flow statements, and structured data types. There was also reasonable support for extension libraries, and the like. As long as you didn't rely on any code patterns that required any kind of callback or inversion of control, you could do a very nice job writing well factored and maintainable code.